2010-11-08 168 views
27
using (ZipFile zip = new ZipFile()) 
{ 
    foreach(string file in Directory.GetFiles(folder)) 
    { 
     zip.AddFile(file, Path.GetFileName(file)); 
    } 
    zip.Save("test.zip")); 
} 

每次我添加文件時,都會爲它創建一個新的子文件夾。DotNetZip在不創建文件夾的情況下添加文件

所以我想結束了:

test.zip 
    - myDoc.doc 
    - myPdf.pdf 

但我結束了:

test.zip 
    - myDoc.doc 
     - myDoc.doc 
    - myPdf.pdf 
     - myPdf.pdf 

回答

55

如何只:

zip.AddFile(file,""); 

zip.AddFile(file,@"\"); 
+0

這就更糟了。例如'Documents \ Process \ Practices \ text.doc'的文件路徑將在路徑中的每個級別的.zip中創建一個子文件夾,以便您最終生成'test.zip - > Documents - > Process - > Practices - > text.doc'。 – fearofawhackplanet 2010-11-08 16:35:55

+1

@fearofawhackplanet嘗試更新的答案.. – Fosco 2010-11-08 17:09:10

+0

是的,現在的作品,謝謝! – fearofawhackplanet 2010-11-09 09:32:16

-2

這就是我所做的工作。

zip.AddFile(file, "..\...\".ToString.Replace("..\...\", Nothing)) 

它將文件發送回2個文件夾並用.....替換..... \。

+0

這對我來說沒有任何意義.. – Allie 2014-06-05 14:38:47

+1

此解決方案太具體,它只適用於兩個文件夾... – 2014-08-26 08:03:02

-1
zip.AddFile(file, "..\...\".ToString.Replace("..\...\", null)) 
相關問題