Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
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
    22
    1
    978

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

Zip Archiv erstellen

Geplant Angeheftet Gesperrt Verschoben JavaScript
6 Beiträge 2 Kommentatoren 241 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • W Offline
    W Offline
    WolfgangFB
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • W Offline
        W Offline
        WolfgangFB
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate

              807

              Online

              32.5k

              Benutzer

              81.6k

              Themen

              1.3m

              Beiträge
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2025
              logo
              • Anmelden

              • Du hast noch kein Konto? Registrieren

              • Anmelden oder registrieren, um zu suchen
              • Erster Beitrag
                Letzter Beitrag
              0
              • Home
              • Aktuell
              • Tags
              • Ungelesen 0
              • Kategorien
              • Unreplied
              • Beliebt
              • GitHub
              • Docu
              • Hilfe