1
我有一個案例,我需要用C#Ionic.zip庫提取Zip文件。 Zip文件包含多個文件夾,我想提取並將特定文件夾複製到特定目標。Ionic Zip只提取特定文件夾
例如命名爲abc.zip和目錄結構Zip文件就會像
父目錄 - > Sub目錄1->提交,文件B 父目錄 - > Sub目錄2->文件c,文件d
我只想複製子目錄1,我該如何完成這項任務?
我有一個案例,我需要用C#Ionic.zip庫提取Zip文件。 Zip文件包含多個文件夾,我想提取並將特定文件夾複製到特定目標。Ionic Zip只提取特定文件夾
例如命名爲abc.zip和目錄結構Zip文件就會像
父目錄 - > Sub目錄1->提交,文件B 父目錄 - > Sub目錄2->文件c,文件d
我只想複製子目錄1,我該如何完成這項任務?
var existingZipFile = "name of the file.zip";
var targetDirectory = "name of the folder";
using (ZipFile zip = ZipFile.Read(existingZipFile))
{
foreach (ZipEntry e in zip.Where(x => x.FileName.StartsWith("Sub directory 1")))
{
e.Extract(targetDirectory);
}
}
這裏的另一種可能的解決方案:
using (ZipFile zip = ZipFile.Read(sourceFile))
{
zip.ExtractSelectedEntries("name = *", "My sub directory", targetPath, ExtractExistingFileAction.OverwriteSilently);
}
雖然這可能會更快然後枚舉所有條目,然後過濾它們,它然而,沒有解壓空文件夾的缺點。
謝謝,它做到了! – 2014-09-12 10:04:03
@DashyKhan甜。請儘快回答 – playful 2014-09-12 11:38:07
儘管OP很高興:您的建議不會創建子目錄結構*父目錄 - >子目錄1->文件a *,而問題僅針對*子目錄1->文件a * ?然後我可以想象,對Extract()使用ExtractCriterion參數比創建所有條目然後對其進行過濾要快。 – 2015-01-21 11:21:27