我正在使用ZipFile类。
为了使用这个类,必须添加一个参考/ dll。看起来你可以同时使用System.IO.Compression和
Ionic.Zip dll(当然一次只能用一个)。
在我的情况下,只有后者起作用。问题是,Ionic.Zip
似乎没有ExtracToFile(...)
方法,它可以覆盖现有文件。我非常需要这个方法。
相反,我只能做:
zip.Extract(extractDirectory);
(然后会收到一个错误,说该文件已经存在)
如果我做:
zip.ExtractToFile(extractDirectory);
我遇到了一个错误,提示方法ExtractToFile不存在。
另外需要注意的是,当我使用 Using System.IO.Compression
时,执行以下操作会出现错误:
var zip = ZipFile.Read(finalFileToUnzip)
这段代码提示找不到ZipFile(虽然我已经将dll添加为引用,通过 "Add Reference -> 选择.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。
ExtractToFile()
方法。对于每个归档条目,你需要将目录名与条目名组合起来,以获取用于保存文件的文件名。 - Peter Duniho