![](/img/trans.png)
[英]Error when creating Zip file using DotNetZip: Unexpected end of archive
[英]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);
}
}
您可以使用AddDirectoryByName在zip文件中創建新目錄,而不是導入目錄
從他們的示例頁面看來,如果指定完整的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.