Папка архива с использованием библиотеки archivejs

Я пытаюсь заархивировать свою папку, которая содержит несколько файлов, с помощью библиотеки archivejs.

Как параметр, я посылаю абсолютный путь к директории, содержащей мои файлы. Я хотел бы получить zip каталог с файлами в корне архива. Я создаю zip-файл, используя createWriteStream. По какой-то причине это не работает должным образом.

Чего я хочу добиться:

Допустим, у меня есть папка для скачивания, где находятся мои файлы, которые я хотел бы заархивировать. Затем я создаю download.zip, где я хотел бы, чтобы все мои файлы были в корне архива.

Файлы не были записаны в мой zip-файл, значит он становится пустым. Где должна быть проблема?

function createArchiveZip(destinationDir) {
      const archive = archiver("zip", { zlib: { level: 9 } }); 
      const archiveDir = `${destinationDir}.zip`;
      const zipOutput = fs.createWriteStream(archiveDir);
      console.log("archiveDirarchiveDir",archiveDir);

      zipOutput.on("error", writeStreamError => {
        console.log("writeStreamError", writeStreamError);
      });
      zipOutput.on("end", writeStreamEnd => {
        console.log("writeStream finish", writeStreamEnd);
      });
      archive.on("warning", archiveWarnings => {
        console.log("archiveWarnings", archiveWarnings);
      });
      archive.on("error", archiveErr => {
        console.log("archiveErr", archiveErr);
      });
      archive.pipe(zipOutput);
      archive.directory(destinationDir, false);
      archive.finalize();
      return archiveDir;
    }

0 ответов

Другие вопросы по тегам