[英]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 不支持此操作,即使使用其文件管理器也是如此。 我建議您只需刪除舊存檔並使用新文件重新創建它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.