簡體   English   中英

.net 如何在 zipfile 中包含目錄和文件關系

[英].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.

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