在zip存档中的Nodejs和更新文件

问题描述 投票:0回答:1

我想在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的内容

javascript node.js filesystems zip ziparchive
1个回答
2
投票

b.txt目前无法附加到现有存档。以下是相关问题:archiver

在您的情况下,https://github.com/archiverjs/node-archiver/issues/23将附加到流,而不是新文件的目标位置。 append不关心archiver的内容,只是用你给a.zip的任何内容覆盖它。

编辑:似乎你最好的办法是用archiver.append解压缩现有文件,然后用https://github.com/maxogden/extract-zip将结果附加到新版本的存档。

© www.soinside.com 2019 - 2024. All rights reserved.