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