我在我的项目中使用DotNetZip.
using (var zip = new ZipFile())
{
zip.ProvisionalAlternateEncoding = System.Text.Encoding.GetEncoding(866);
zip.AddFile(filename, "directory\\in\\archive");
zip.Save("archive.zip");
}
Run Code Online (Sandbox Code Playgroud)
一切都好,但是当我使用方法AddDirectoryByName我有一个错误的目录名称.
小智 8
通用的方式是:
zip.AlternateEncoding = Encoding.UTF8;
zip.ProvisionalAlternateEncoding = Encoding.GetEncoding(Console.OutputEncoding.CodePage);
zip.AlternateEncodingUsage = ZipOption.AsNecessary;
Run Code Online (Sandbox Code Playgroud)
这种方式在新版本中为我工作
zip.AlternateEncodingUsage = ZipOption.Always;
zip.AlternateEncoding = Encoding.GetEncoding(866);
Run Code Online (Sandbox Code Playgroud)