2016-04-18 75 views
1

我想壓縮使用C#中的IonicZip庫文件夾。它能夠在文件夾中壓縮.txt,.exe,.pdf等,但無法壓縮文件夾中的文件夾。Ionic Zip無法壓縮文件夾內的文件夾C#

Folder

它能夠壓縮MusicLogs.txt和Video.exe但不能音樂folder.Music文件夾中包含一些文件夾也。即使在調試時,它也不會看到音樂文件夾。我的代碼是:

string zipPath = @"C:\" + DateTime.Now.ToString("yyyy-MM-dd HH-mm") + ".zip"; // zipped file extracts here 
string filename = @"E:\"; // the fodler which should be zipped. File must be exist 

using (ZipFile zipFile = new ZipFile()) 
{ 
    zipFile.Password = "asd"; 
    zipFile.Encryption = EncryptionAlgorithm.PkzipWeak; 
    foreach (string file in Directory.GetFiles(filename)) // this foreach is for getting all files in a folder. 
    { 
     zipFile.AddFile(file, "YESMusic"); // set file 
    } 

    zipFile.Save(zipPath); 

} 

問題在哪裏?需要改變AddFile函數?由於

回答

1

這將工作:

using (ZipFile zipFile = new ZipFile()) 
{ 
    zipFile.Password = "asd"; 
    zipFile.Encryption = EncryptionAlgorithm.PkzipWeak;   
    // Adding folders in the base directory 
    foreach (var item in Directory.GetDirectories(filename)) 
    { 
     string folderName = new DirectoryInfo(item).Name; 
     zipFile.AddDirectory(item, folderName); 
    } 
    // Adding files in the base directory 
    foreach (string file in Directory.GetFiles(filename)) 
    { 
     zipFile.AddFile(file); 
    } 
    zipFile.Save(zipPath); 
} 
+0

謝謝,這是偉大的工作!我想我錯過了目錄部分。謝啦兄弟! – onur

+0

這是好的兄弟..!樂意幫助你。祝你有個美好的一天 –

+0

謝謝,祝你今天開心 – onur