我正在使用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作为参考,执行“添加参考 - >并选择.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
答案 0 :(得分:5)
我解决了。问题是仅仅向引用添加System.IO.Compression
是不够的,您还必须添加System.IO.Compression.Filesystem