2017-06-05 56 views
0

當我用DotNetZip壓縮文件夾時,它工作正常,但在基於Linux的服務器中解壓縮壓縮文件夾時,它不起作用。服務器團隊告訴我,雖然我們的系統是基於Linux的,但是壓縮文件時使用'/'而不是'\'。使用指定路徑分隔符的文件夾將使用dotnetzip庫在Windows和Linux中工作

如何在使用DotNetZip壓縮文件夾時提及路徑分隔符?

下面是壓縮我的文件夾的代碼。

ZipFile zp = new ZipFile(); 
      zipfileName = Server.MapPath("~/folder") + @"/" + folderName + @".zip"; 


      if (Directory.Exists(directoryPath)) 
      { 
       zp.AddDirectory(directoryPath, folderName); 
       zp.Save(zipfileName); 
      } 
+0

您是否需要將目錄添加到zip文件中? – Simon

+0

我只想壓縮正在傳遞的文件夾以保存功能。 –

回答

0

我找到了答案。我改變了我的代碼,現在就開始工作。

Ionic.Zip.ZipFile zp = new Ionic.Zip.ZipFile(); 
zp.AlternateEncodingUsage = ZipOption.Always; 
zp.AlternateEncoding = Encoding.UTF8; 
zp.AddDirectory(directoryPath, folderName); 
zp.Save(zipfileWithPathAndName); 
+1

你不應該做'zipfileName = Server.MapPath(「〜/ folder」)+ @「/」+ folderName + @「。zip」;'而是使用'Path.Combine()'! – user9993

+0

謝謝指出。 –

相關問題