![](/img/trans.png)
[英]ZipFile.CreateFromDirectory does not include directory entries
[英].net How to include directory and file relationship in zipfile
我正在使用 System.IO.Compression 命名空間 ZipFile 和 ArchiveFile 庫。 為了盡可能高效,我調用標記為壓縮的頂部文件夾。 CreateFromDirectory 將遍歷子文件夾以包含這些文件夾及其文件。 但是,我有一些未標記為壓縮的子文件夾。 更糟糕的是,那些標記為未壓縮的子文件夾包括標記為壓縮的子文件夾。 據我所知,那些跳過的文件夾不能包含在 Zipfile 中。 這意味着我在 zipfile 中丟失了文件夾結構。 這使得將文件恢復到原始位置變得更加困難。
有沒有辦法解決 ?
您可以使用 ZipArchive 並手動將文件添加到 zip 存檔。
entryName
是你想要的target\\folder\\filename.ext
using (var zipFileStream = new FileStream(destinationArchiveFileName, FileMode.Create))
{
using (var archive = new ZipArchive(zipFileStream, ZipArchiveMode.Create))
{
for (int i = 0; i < filesToAdd.Count; i++)
{
// filter some files before this, or ignore some files here
var fileName = filesToAdd[i];
var entryName = entryNames[i];
archive.CreateEntryFromFile(fileName, entryName, compressionLevel);
}
}
}
這也是ZipFile.CreateFromDirectory
在循環中內部調用的內容,只是您可以在此處對其進行過濾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.