簡體   English   中英

使用dotnetzip在zip文件中創建虛擬目錄樹

[英]Creating virtual directory tree in zip file using dotnetzip

我正在嘗試從代碼創建一個zip文件,我正在使用dotnetzip

我想在磁盤上不存在的文件夾中創建目錄樹。 我該怎么做呢?

我曾嘗試使用AddDirectory但這似乎想在磁盤上找到目錄。 我也嘗試過AddEntry,但這需要一些內容。

我的文件使用FileStream選項存儲在SQL Server中,並在那里按層次結構進行組織。

我編寫了此遞歸方法來執行此操作,但是AddDirectory行不起作用。

    private void GetFiles(ZipFile zipFile, Folder folder, string path)
    {
        zipFile.AddDirectory(folder.FolderName, path);

        foreach (var file in folder.Files)
            zipFile.AddEntry(file.FileName, file.FileData);

        foreach(var subfolder in folder.SubFolders)
        {
            GetFiles(zipFile, subfolder, path + "\\" + subfolder.FolderName);
        }
    }

您可以使用AddDirectoryByNamezip文件中創建新目錄,而不是導入目錄

從他們的示例頁面看來,如果指定完整的filel路徑,它將在ZIP中添加與該路徑相對應的條目。因此,您可以嘗試僅添加具有完整路徑的文件,並跳過AddDirectory步驟。我可以從他們的文檔中的此代碼示例中收集到什么:

將一組項目添加到zip文件中,並在zip歸檔文件中指定一個公共目錄。 本示例將條目添加到zip文件中。 每個條目都使用指定的路徑名​​添加。

 String[] filenames = { "ReadMe.txt", "c:\\data\\collection.csv", "c:\\reports\\AnnualSummary.pdf"};
  using (ZipFile zip = new ZipFile())
  {
    zip.AddFiles(filenames, "files");
    zip.Save("Archive.zip");
  }

暫無
暫無

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

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