我有一个zip文件,在根目录中只包含两个文件夹:Binaries
和Source
但我只需要Binaries文件夹。在C#中有可能吗?
这是我目前的代码,但不起作用。
using (ZipArchive archive = ZipFile.OpenRead(zipPath.FullName))
{
foreach (ZipArchiveEntry entry in archive.Entries)
{
if (entry.FullName.StartsWith(@"Binaries/", StringComparison.OrdinalIgnoreCase))
{
entry.ExtractToFile(Path.Combine(extractPath, "Hepper"));
}
}
}
更新 它给了我这个错误文件
'C:\ Hepper \ Hepper'已经存在。
答案 0 :(得分:1)
一目了然(实际上没有检查API),您似乎试图将所有条目提取到相同的文件名(Path.Combine(extractPath, "Hepper")
)。您可能希望将entry
中的路径和文件名作为要提取到的位置的一部分。
答案 1 :(得分:0)
我找到了解决问题的方法:
using (Ionic.Zip.ZipFile zip1 = Ionic.Zip.ZipFile.Read(path.FullName))
{
var selection = (from e in zip1.Entries
where (e.FileName).StartsWith("Binaries/")
select e);
Directory.CreateDirectory(_localExtratingPath.FullName);
foreach (var e in selection)
{
e.Extract(_localExtratingPath.FullName);
}
}