如何解决提取.zip存档的最快方法
| 哪种方法是提取.zip存档的最快方法?我的应用程序的性能高度取决于.zip文件的提取速度。我正在使用dotNetzip atm,但似乎可能会有更快的工具。如果有,他们安全吗?我听说QuickLZ是最快的,但尚未对其进行测试,也未找到任何代码示例或如何在c#中使用它。任何帮助将不胜感激。解决方法
如果可以将项目升级到.NET 4.5,则可以使用
ZipArchive
类。我写了一篇有关使用它的文章,这简直太简单了。还有ZipFile
,我也写过,甚至更简单。但是,我无法对性能发表评论,因为我尚未使用第三方库来存储ZIP存档。
,使用DotNetZip库,您可以仅使用ExtractAll()方法提取所有文件:)
,做我们自己的测试,到目前为止,7-zip CLI(exe文件)是最快的。 CLI应用程序的性能胜过所有那些.NET dll,这听起来很疯狂,但不幸的是,事实是这样。
确切地说,我已经使用ZipFile和ZipArchive对SharpCompress,SharpZipLib,DotNetZip,.NET自己的实现进行了测试。对于我们的测试文件,所有这些文件都在运行10-20秒左右,但是7-zip的exe进程通常在7-8秒后完成。
如果您决定使用7-zip,这是示例代码:
private static void ExtractWith7Zip(string archivePath,string extractPath)
{
var info = new ProcessStartInfo
{
FileName = @\"C:\\Program Files\\7-Zip\\7z.exe\",Arguments = $\"x -y -o\\\"{extractPath}\\\" \\\"{archivePath}\\\"\",WindowStyle = ProcessWindowStyle.Hidden,CreateNoWindow = true,UseShellExecute = false,RedirectStandardOutput = true
};
Process.Start(info)?.WaitForExit();
}
,您的zip文件有多大?也许您可以利用现代多核处理器的优势,方法是将原始文件分成多个部分,分别压缩每个部分,然后使用多线程将其解压缩到应用程序中。与解压缩时间相比,重新组合内存中文件的时间将很小。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。