C# Ioniczip压缩文件损坏,文件名放置错误

C# Ioniczip压缩文件损坏,文件名放置错误,c#,regex,zip,C#,Regex,Zip,IonicZip破坏了我打包的文件,我遇到了一些麻烦。起初我以为是因为文件名,但现在我发现情况并非如此。 这是我用来打包东西的代码 using (ZipFile pack = new ZipFile()) { pack.AddProgress += (s, eventArgs) => { if (eventArgs.EventType == ZipProgressEventTyp

IonicZip破坏了我打包的文件,我遇到了一些麻烦。起初我以为是因为文件名,但现在我发现情况并非如此。 这是我用来打包东西的代码

        using (ZipFile pack = new ZipFile())
        {
            pack.AddProgress += (s, eventArgs) =>
            {
                if (eventArgs.EventType == ZipProgressEventType.Adding_AfterAddEntry)
                {
                    Regex pattern = new Regex("[(]|[)]|[']|[[]|[]]|[+]");
                    eventArgs.CurrentEntry.FileName = pattern.Replace(eventArgs.CurrentEntry.FileName, "");
                }
            };
            pack.AddDirectory(defPackageCreationPath + "\\installfiles", "");            
            pack.Save(outputPath + "\\package.mpp");
        }
我使用Regex从正在打包的文件的文件名中删除显示的字符,因为我认为这是因为文件名被破坏了。但事实并非如此

这里有一个例子。我可以毫无问题地打包这个文件

[Forge]FurnitureModv2.9.2(FULL).zip
然而!如果我将同一个文件与许多其他文件打包在一起,一切都会出错

看看这个源文件夹的屏幕截图,我从中取出文件并用上面的代码打包,右边是提取的文件夹:

注意,源目录中的文件大小与提取的内容不匹配?我们再看看尺码。。文件名与源文件名不匹配!我在[Forge]FurnitureModv2.9.2(FULL).zip之前提到的文件,现在称为ForgeFurnitureModv2.9.2FULL.zip,已经从467KB下降到51KB,如果我试图打开它,我会被告知它已损坏。。但是看看TooMuchTNT v2.5.zip文件。。这个文件的大小是467KB,因为另一个文件来自源代码,如果我打开这个文件,我会得到[Forge]FurnitureModv2.9.2(FULL).zip中应该包含的内容

总而言之,我有两个问题:

  • 因为文件名与源文件夹中的内容不匹配
  • 有些文件会损坏,但是如果我打包了一个损坏的文件,而没有任何其他文件,它可以正常工作,并且不会损坏

  • 你能帮忙吗?也许我打包文件时出错了?

    只是好奇,TooMuchTNT v2.5.zip中有什么内容???提取的文件TooMuchTNT v2.5.zip与源文件[Forge]FurnitureModv2.9.2(FULL).zip的内容相同。。并且源文件ForgeFurnitureModv2.9.2FULL.zip已损坏。