c# - 尝试使用 ZipFile 类时在 System.IO.Compression 上出错

标签 c# compression zip

我正在使用 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 Framework 4.5.2

最佳答案

我解决了。问题在于,仅将 System.IO.Compression 添加到引用中是不够的,您还必须添加 System.IO.Compression.Filesystem

关于c# - 尝试使用 ZipFile 类时在 System.IO.Compression 上出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26657716/

相关文章:

python - 如何在 python 中检测 mime 类型的文件?

java - AesZipFileEncrypter zipAndEncrypt 方法将所有文件夹树添加到文件

c# - 删除对象序列中的连续重复项

java - 无效距离太远

javascript - 测试压缩 JavaScript 代码的性能增益

python - 是否可以使用 '0' 和 '1' 字符构建霍夫曼算法?

python - 在 Python 中将多个 zip 文件合并为一个 zip 文件

c# - 将 office VSTO 插件发布到 office store

c# - 我需要 MemoryBarrier 和 ReaderWriterLockSlim 吗?

javascript - 有什么方法可以覆盖后退按钮吗?