尝试使用ZipFile类时,System.IO.Compression出现错误

本文关键字:Compression IO 错误 System ZipFile 类时 | 更新日期: 2023-09-27 18:28:32

我正在使用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类时,System.IO.Compression出现错误

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