DotNetZipライブラリを使用してzipファイルからファイルを抽出しようとしています。私はそれが単一の.zipファイルであるときにファイルを抽出することができます。しかし、Something.zip.0やSomething.zip.1のようなマルチボリュームのzipファイルからファイルを抽出しようとすると、次の2つの例外が発生します。DotNetZipで分割Zipファイルを開く
-Exceptionスロー: 'Ionic.Zip.BadReadException' in Ionic.Zip.dll
-Exceptionスロー:DotNetZipは、これらのファイルの種類を読み取るためには「Ionic.Zip.ZipException」Ionic.Zip.dll
には可能ですか、私が代わりに探してする必要がありますアプローチ?私はVisual StudioでC#を使って作業しています。
ここでは、私はどのように私のzipファイルの抽出を実装するスニペットです。
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();
}