5

我在我的项目中使用 DotNetZip。

using (var zip = new ZipFile()) 
{ 
   zip.ProvisionalAlternateEncoding = System.Text.Encoding.GetEncoding(866); 
   zip.AddFile(filename, "directory\\in\\archive"); 
   zip.Save("archive.zip"); 
} 

一切正常,但是当我使用 AddDirectoryByName 方法时,我的目录名称不好。

4

3 回答 3

8

所有人的通用方法是:

zip.AlternateEncoding = Encoding.UTF8;
zip.ProvisionalAlternateEncoding = Encoding.GetEncoding(Console.OutputEncoding.CodePage);
zip.AlternateEncodingUsage = ZipOption.AsNecessary;
于 2011-12-28T12:44:55.940 回答
5

这种方式在新版本中对我有用

zip.AlternateEncodingUsage = ZipOption.Always;
zip.AlternateEncoding = Encoding.GetEncoding(866); 
于 2014-07-03T17:05:02.320 回答
3

您可以先查看定义。然后你会发现这个:

public ZipFile(Encoding encoding);

所以你可以使用这个:

using (ZipFile zip = new ZipFile(Encoding.UTF8))
于 2016-09-21T08:37:14.173 回答