我想在zip存档中使用qazxsw poi更新文件。例如,我有两个文件的zip文件:
nodejs
我使用归档器:
a.zip
|-a.txt
|-b.txt
但我有一个问题,我的档案被完全覆盖。结果,我得到:
var archiver = require('archiver');
var archive = archiver('zip', {});
archive.pipe(fs.createWriteStream('./a.zip'));
archive.append(fs.createReadStream('./c.txt'), { name: 't.txt' });
archive.finalize();
如果我使用:
a.zip
|-t.txt
结果保持不变。我希望得到这种结构
archive.file('./a.txt', { name: 't.txt' });
或者更新其中一个文件 a.zip
|-a.txt
|-b.txt
|-t.txt
或a.txt
的内容
b.txt
目前无法附加到现有存档。以下是相关问题:archiver
在您的情况下,https://github.com/archiverjs/node-archiver/issues/23将附加到流,而不是新文件的目标位置。 append
不关心archiver
的内容,只是用你给a.zip
的任何内容覆盖它。
编辑:似乎你最好的办法是用archiver.append
解压缩现有文件,然后用https://github.com/maxogden/extract-zip将结果附加到新版本的存档。