[英]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.txt
或b.txt
之一的內容
目前無法使用archiver
附加到現有存檔。 這是 2013 年開放的相關問題:支持附加到現有檔案 #23
在您的情況下, append
是附加到stream ,而不是附加到新文件目的地的任何內容。 archiver
不關心a.zip
,它只是用您提供給archiver.append
任何內容覆蓋它。
似乎您最好的選擇是使用maxogden/ extract-zip解壓縮現有文件,然后使用archiver
將結果附加到存檔的新版本中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.