【发布时间】:2017-08-03 21:49:29
【问题描述】:
我正在尝试使用 DotNetZip 库从 zip 文件中提取文件。当它是单个 .zip 文件时,我能够提取文件。但是,当我尝试从Something.zip.0 或Something.zip.1 等多卷zip 文件中提取文件时,出现以下两个异常:
-抛出异常:Ionic.Zip.dll 中的“Ionic.Zip.BadReadException”
-抛出异常:Ionic.Zip.dll 中的“Ionic.Zip.ZipException”
DotNetZip 是否可以读取这些类型的文件,或者我应该寻找一种替代方法?我正在使用 C# 开发 Visual Studio。
这是我如何实现 zip 文件提取的 sn-p。
using (Ionic.Zip.ZipFile zip = Ionic.Zip.ZipFile.Read(_pathToZip))
{
zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestSpeed;
foreach(Ionic.Zip.ZipEntry ze in zip)
{
string fileName = ze.FileName;
bool isThereItemToExtract = isThereMatch(fileName.ToLower(), _folderList, _fileList);
if (isThereItemToExtract)
{
string pathOfFileToExtract = (_destinationPath + "\\" + ze.FileName).Replace('/', '\\');
string pathInNewZipFile = goUpOneDirectoryRelative(ze.FileName);
ze.Extract(_destinationPath, Ionic.Zip.ExtractExistingFileAction.OverwriteSilently);
_newZip.AddItem(pathOfFileToExtract, pathInNewZipFile);
}
}
_newZip.Save();
}
【问题讨论】: