Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Zip Archiv erstellen

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    21
    1
    835

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

Zip Archiv erstellen

Scheduled Pinned Locked Moved JavaScript
6 Posts 2 Posters 241 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • W Offline
    W Offline
    WolfgangFB
    wrote on last edited by
    #1

    Wie kann man in Javascript ein Zip Archiv (oder tar.gz) erstellen?

    function AddToZip(ZipFileName, FileToAdd){
        // Zip Archiv ZipFileName erzeugen wenn es nicht existiert, sonst FileToAdd in das Archiv packen
        ???
    }
    
    F 1 Reply Last reply
    0
    • W WolfgangFB

      Wie kann man in Javascript ein Zip Archiv (oder tar.gz) erstellen?

      function AddToZip(ZipFileName, FileToAdd){
          // Zip Archiv ZipFileName erzeugen wenn es nicht existiert, sonst FileToAdd in das Archiv packen
          ???
      }
      
      F Offline
      F Offline
      fastfoot
      wrote on last edited by
      #2

      @wolfgangfb siehe hier

      // @ts-ignore
      const JSZip = require('jszip');
      // @ts-ignore
      const fse = require('fs-extra');
      const Path = require('path');
      const inputFolder = '../../scriptInput';
      const outputFolder = '../../scriptOutput';
      
      const imgData = fse.readFileSync(Path.resolve(inputFolder, 'test.png'));
      var zip = new JSZip();
      zip.file("Hello.txt", "Hello World\n");
      var img = zip.folder("images");
      img.file("test.png", imgData, { base64: true });
      zip.generateAsync({ type: "nodebuffer" })
         .then(function (content) {
             fse.writeFileSync(Path.resolve(outputFolder, "example.zip"), content);
         });
      

      iobroker läuft unter Docker auf QNAP TS-451+
      SkriptRecovery: https://forum.iobroker.net/post/930558

      1 Reply Last reply
      0
      • W Offline
        W Offline
        WolfgangFB
        wrote on last edited by
        #3

        @fastfoot
        Danke erstmal.
        Verstehe ich das richtig, dass ich die Datei erst mal laden muss? Damit würden aber die Attribute und Zeitsstempel der Datei, die ins Archiv gepackt wird, verloren gehen. Und bei sehr großen Dateien stelle ich mir das schwierig vor.
        Könnte man nicht auch einen Systemaufruf abschicken und das BS das ganze erledigen lassen?

        F 1 Reply Last reply
        0
        • W WolfgangFB

          @fastfoot
          Danke erstmal.
          Verstehe ich das richtig, dass ich die Datei erst mal laden muss? Damit würden aber die Attribute und Zeitsstempel der Datei, die ins Archiv gepackt wird, verloren gehen. Und bei sehr großen Dateien stelle ich mir das schwierig vor.
          Könnte man nicht auch einen Systemaufruf abschicken und das BS das ganze erledigen lassen?

          F Offline
          F Offline
          fastfoot
          wrote on last edited by
          #4

          @wolfgangfb sagte in Zip Archiv erstellen:

          Könnte man nicht auch...

          klar, Kommando für dein OS finden und mit exec() aufrufen. für Linux würde ich zip nehmen, muss aber evtl. zuerst installiert werden

          iobroker läuft unter Docker auf QNAP TS-451+
          SkriptRecovery: https://forum.iobroker.net/post/930558

          W 1 Reply Last reply
          0
          • F fastfoot

            @wolfgangfb sagte in Zip Archiv erstellen:

            Könnte man nicht auch...

            klar, Kommando für dein OS finden und mit exec() aufrufen. für Linux würde ich zip nehmen, muss aber evtl. zuerst installiert werden

            W Offline
            W Offline
            WolfgangFB
            wrote on last edited by
            #5

            @fastfoot sagte in Zip Archiv erstellen:

            @wolfgangfb sagte in Zip Archiv erstellen:

            Könnte man nicht auch...

            klar, Kommando für dein OS finden und mit exec() aufrufen. für Linux würde ich zip nehmen, muss aber evtl. zuerst installiert werden

            Kannst Du mir ein Beispiel nennen wie ich z.B. ein "ls -la /opt/iobroker > /opt/iobroker/hallo.txt" mit exec() realisieren würde.
            Alles was ich bei google über Javascript und exec finde läuft auf

            JavaScript exec() method is used to search for a matching string in a certain string.
            

            hinaus und das kann es ja wohl nicht sein.

            F 1 Reply Last reply
            0
            • W WolfgangFB

              @fastfoot sagte in Zip Archiv erstellen:

              @wolfgangfb sagte in Zip Archiv erstellen:

              Könnte man nicht auch...

              klar, Kommando für dein OS finden und mit exec() aufrufen. für Linux würde ich zip nehmen, muss aber evtl. zuerst installiert werden

              Kannst Du mir ein Beispiel nennen wie ich z.B. ein "ls -la /opt/iobroker > /opt/iobroker/hallo.txt" mit exec() realisieren würde.
              Alles was ich bei google über Javascript und exec finde läuft auf

              JavaScript exec() method is used to search for a matching string in a certain string.
              

              hinaus und das kann es ja wohl nicht sein.

              F Offline
              F Offline
              fastfoot
              wrote on last edited by
              #6

              @wolfgangfb also da gibt es 100te Beispiele auch hier im Forum :-)

              exec('ls -la /opt/iobroker >/opt/iobroker/hallo.txt', (err, out, e) => {
                  if (err) console.error(err);
                  if (e) console.error(e);
                  require('fs').readFile('/opt/iobroker/hallo.txt', 'utf8', (err, data) => {
                      if (err)
                          console.error(err);
                      else
                          console.log(data);
              
                  })
              })
              

              iobroker läuft unter Docker auf QNAP TS-451+
              SkriptRecovery: https://forum.iobroker.net/post/930558

              1 Reply Last reply
              0
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              Support us

              ioBroker
              Community Adapters
              Donate

              511

              Online

              32.5k

              Users

              81.6k

              Topics

              1.3m

              Posts
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2025
              logo
              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Home
              • Recent
              • Tags
              • Unread 0
              • Categories
              • Unreplied
              • Popular
              • GitHub
              • Docu
              • Hilfe