Wad*_*gat 5 c# exception-handling unzip task-parallel-library
我有一个创建一个例程,将并行解压缩多个zip文件(zip的平均大小将是2GB).所以,我创建了一个使用TPL解压缩文件的函数.
这在原则上很有效.我还没有测试数据所以我想我会复制当前存在的zip文件并重命名其中的文件并重新压缩它.好吧,当我这样做时,我收到以下错误:
使用不受支持的压缩方法压缩归档条目
那么请你认为合适的代码评论,为什么我在这里得到错误.
码:
private static void UnzipfilesInTemp()
{
Task[] unzippers = null;
bool rtn = false;
//--UNZIP FILES IN TEMPORARY LOCATION
var TEMP_ZIP_FILES = System.IO.Directory.GetFiles(tempPath, "*" + Statement*.zip");
unzippers = new Task[TEMP_ZIP_FILES.Length];
unZippedFiles = new string[TEMP_ZIP_FILES.Length];
lock (thisLock)
{
for (int i = 0; i <= TEMP_ZIP_FILES.Length - 1; i++)
{
string filename = TEMP_ZIP_FILES[i];
unzippers[i] = Task.Factory.StartNew(() =>
{
//--UNZIP FILE FOR STATEMENT IMPORTING
try
{
ZipFile.ExtractToDirectory(filename, tempPath);
}
catch (Exception)
{
//--UNABLE TO UNZIP FILES
_coreprocess.AddLogDetailRecord(MSG, false, "");
ProcessSuccess = false;
ExitAllCode();
}
});
}
}
Task.WaitAll(unzippers);
unZippedFiles = System.IO.Directory.GetFiles(tempPath, "*" + BANK_NUM + "*.PDF");
}
Run Code Online (Sandbox Code Playgroud)