2017-06-05 35 views
0

DotNetZipでフォルダを圧縮しているとき、正常に動作しますが、LinuxベースのサーバでZIPフォルダを解凍すると機能しません。サーバーチームは、私たちのシステムはLinuxベースであるため、ファイルを圧縮している間に '\'の代わりに '/'を使用すると教えてくれました。WindowsとLinuxでdotnetzipライブラリを使用して指定されたパス区切りのフォルダを圧縮する

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

'Path.Combine()'を使う代わりに、 'zipfileName = Server.MapPath("〜/ folder ")+ @"/"+ folderName + @" zip "; – user9993

+0

それを指摘してくれてありがとう。 –

関連する問題