我用DotNetZip在我的项目。

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

所有确定,但当我使用方法AddDirectoryByName我有一个坏的目录名。

有帮助吗?

解决方案

<强>通用于所有的方法是:

zip.AlternateEncoding = Encoding.UTF8;
zip.ProvisionalAlternateEncoding = Encoding.GetEncoding(Console.OutputEncoding.CodePage);
zip.AlternateEncodingUsage = ZipOption.AsNecessary;

其他提示

本方式的新版本为我工作

zip.AlternateEncodingUsage = ZipOption.Always;
zip.AlternateEncoding = Encoding.GetEncoding(866); 

您可以首先偷看定义。 这时你会发现这样的:

public ZipFile(Encoding encoding);

所以,你可以使用这样的:

using (ZipFile zip = new ZipFile(Encoding.UTF8))
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top