簡體   English   中英

Nodejs 和 zip 存檔中的更新文件

[英]Nodejs and update file inside zip archive

我想用nodejs更新 zip 檔案中的文件。 例如,我有兩個文件的 zip 文件:

 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.txtb.txt之一的內容

目前無法使用archiver附加到現有存檔。 這是 2013 年開放的相關問題:支持附加到現有檔案 #23

在您的情況下, append是附加到stream ,而不是附加到新文件目的地的任何內容。 archiver不關心a.zip ,它只是用您提供給archiver.append任何內容覆蓋它。

似乎您最好的選擇是使用maxogden/ extract-zip解壓縮現有文件,然后使用archiver將結果附加到存檔的新版本中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM