【问题标题】:Getting error on System.IO.Compression when trying to use ZipFile class尝试使用 ZipFile 类时出现 System.IO.Compression 错误
【发布时间】:2014-10-30 15:57:49
【问题描述】:

我正在使用 ZipFile 类。

必须添加引用/dll 才能使用此类。看来您可以同时使用System.IO.CompressionIonic.Zip dll(当然一次一个)。

就我而言,只有后者有效。但问题是 Ionic.Zip 似乎没有方法:ExtracToFile(...) 覆盖现有文件。我非常需要这种方法。 相反,我只能这样做:

zip.Extract(extractDirectory);(然后我得到一个错误,说文件已经存在)

如果我这样做:

zip.ExtractToFile(extractDirectory);

我收到一条错误消息,指出方法 ExtractToFile 不存在。

另外需要注意的是,在做Using System.IO.Compression的时候,我在做的时候会报错:

var zip = ZipFile.Read(finalFileToUnzip)

它说它找不到 ZipFile(尽管我确实添加了 dll 作为参考,执行“添加参考 -> 并选择 .dll 文件”)

如果我做Using Ionic.Zip,它将接受:var zip = ZipFile.Read(finalFileToUnzip)

我找不到有关此问题的任何信息或以前的帖子,希望有人能提供帮助

知道可能是什么问题吗?

这里有更多代码:

for (int i = 0; i < listWithZipToUnpack.Count; ++i)
{
    extractDirectory = Path.Combine(projectPath.ToString(), pathDir + listWithZipToUnpack[i]);

    var finalFileToUnzip = Path.Combine(projectPath.ToString(), pathDir, "Lely", listWithZipToUnpack[i]);

    if (finalFileToUnzip.Equals("--Vælg fil--")) { continue; }

    using (var zip = ZipFile.OpenRead(finalFileToUnzip))
    {
        if (!Directory.Exists(extractDirectory))
        {
            Directory.CreateDirectory(extractDirectory+"-"+listWithZipToUnpack[i]);
        }

        foreach (var zipArchiveEntry in zip.Entries)
        {
            zipArchiveEntry.ExtractToFile(extractDirectory);
        }
    }
}

我正在使用 .NET 框架 4.5.2

【问题讨论】:

  • ZipFile 已添加到 .NET 4.5...您使用的是哪个版本的框架?
  • 听起来你有一个Path 问题在这里你能展示你如何分配你需要压缩的内容的文件/文件路径..
  • 我使用的是 .NET 4.5.2 版。我编辑了代码,添加了更多代码 2 它
  • 您要问什么具体问题?编译错误?执行时出错?您能确切地告诉我们您遇到了什么错误,在哪里?
  • 如果没有完整的代码示例,就不可能说出问题所在。您发布的代码 should 编译良好,所以如果不是,那是因为您从问题中省略了一些细节。也就是说,我会指出,即使你编译了它,它仍然无法工作,因为你在调用ExtractToFile() 时将目录名作为文件名传递。对于每个归档条目,您需要将目录名称与条目名称结合起来,以获取用于保存文件的文件名。

标签: c# compression zipfile


【解决方案1】:

我解决了。问题是引用时只添加System.IO.Compression是不够的,还必须添加System.IO.Compression.Filesystem

【讨论】:

  • 所以你必须添加它作为参考。
  • 是的,参考文献。 using 语句中不需要。
猜你喜欢
  • 2019-07-30
  • 1970-01-01
  • 1970-01-01
  • 2013-04-25
  • 2020-06-24
  • 2014-02-05
  • 2016-10-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多