簡體   English   中英

如何使用 SevenZipSharp 將文件添加到存檔

[英]How to add files to archive using SevenZipSharp

首先我想做的是:

我有一個要添加到同一存檔中的文件列表。 此文件的文件夾結構應包含在存檔中。

我遇到的問題是我無法將文件添加到現有存檔中。 當我使用CompressionMode.Create時,只有實際文件在存檔中,當我使用CompressionMode.Append時,我得到一個KeyNotFoundException並且存檔上沒有任何變化。

SevenZip.SevenZipCompressor szc = new SevenZip.SevenZipCompressor();
if (File.Exists(PathToArchive))
    szc.CompressionMode = SevenZip.CompressionMode.Append;
else
    szc.CompressionMode = SevenZip.CompressionMode.Create;

FileStream archive = new FileStream(Filename, FileMode.OpenOrCreate, FileAccess.ReadWrite);
try
{
    szc.DirectoryStructure = true;
    szc.EncryptHeaders = true;
    szc.DefaultItemName = filename; //if the full path given the folders are also created
    szc.CompressStream(filestream, archive, Password);
}
catch (Exception e) { }

archive.Close();

我對 append 文件到現有存檔沒有任何問題,使用 SharpZipLib 0.64(來自 Nuget)和來自 sourceforge 的 7z.dll 9.20,但我使用的是 CompressFiles() 而不是 CompressStream()。

7-Zip 不支持此操作,即使使用其文件管理器也是如此。 我建議您只需刪除舊存檔並使用新文件重新創建它。

Windows 7 x64 - 7-Zip 9.20

暫無
暫無

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

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