0
const fs = require("fs-extra");
const archiver = require("archiver");
const targetPath = __dirname + "/original.zip"
const output = fs.createWriteStream(targetPath);
const archive = archiver("zip", {
  zlib: { level: 9 }, // Sets the compression level.
});

archive.pipe(output);
archive.append("string cheese!", { name: "file2.txt" });

archive.finalize();

if (fs.existsSync(targetPath)) {
  fs.copySync(targetPath, "copied.zip", { overwrite: true });
}

I just want to copy the created zip to another path. But after I run the code, I can open the original.zip and extract it, but not the case for copied.zip. For some reason, it is corrupted.

Anybody knows whats happening? any help appreciated.

ddeark
  • 13
  • 3
  • Why dont you wait for the the output stream to end? You copy right after `finalize()`, you should wait till the output stream is closed/ended – Marc Oct 27 '21 at 06:59
  • @Marc thanks. I just realized and fixed it now. Also, I can use fs.copy() instead of copySync() apparently – ddeark Nov 02 '21 at 07:41

0 Answers0