本文介绍了System.IO.Compression.ZipFile .NET 4.5输出zip不适用于Linux/Mac/Java的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用.NET System.IO.Compression.ZipFile.CreateFromDirectory 类时,在带有正斜杠目录分隔符的系统上严重提取了结果zip.

While using .NET System.IO.Compression.ZipFile.CreateFromDirectory class the outcome zip is badly extracted on system with forward-slash directory separator.

原因:邮政编码中的名称中包含反斜杠

Reason: The zip contains backslash inside the names

推荐答案

要解决此问题,存在一种解决方法:

To overcome this problem a workaround exists:

    class MyEncoder : UTF8Encoding
    {
        public MyEncoder()
        {

        }
        public override byte[] GetBytes(string s)
        {
            s = s.Replace("\\", "/");
            return base.GetBytes(s);
       }
    }
    System.IO.Compression.ZipFile.CreateFromDirectory("C:/ABC", "C:/tmp/ABC.zip", CompressionLevel.Fastest, false, new MyEncoder());

这篇关于System.IO.Compression.ZipFile .NET 4.5输出zip不适用于Linux/Mac/Java的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-19 12:42