[英]7-zip extraction in C#
我有一个文件夹,其中包含需要提取的一百万个zip文件。 我尝试过两种方法:
方法1:使用7-zip exe文件和System.Diagnostic Process,如下所示
ProcessStartInfo p = new ProcessStartInfo();
p.FileName = "7za.exe"
p.Arguments = "e " + sourceName; // sourceName is the name of the zip file
p.WindowStyle = ProcessWindowStyle.Hidden;
Process x = Process.Start(p);
x.WaitForExit();
方法2:使用7z.dll和SevenZipExtractor,如下所示
SevenZipExtractor.SetLibraryPath(@"C:\Program Files\7-Zip\7z.dll");
SevenZipExtractor zipFile = new SevenZipExtractor("inv1_0.zip");
zipFile.ExtractArchive(@"c:\projects\extractor\extractor\bin\debug\inv1_0.dat");
这里有两件事:
a)方法1完全正常。 方法2不起作用。 给出错误“ SevenZip.SevenZipArchiveException:无效的存档:打开/读取错误!”。 有人可以建议为什么在方法1提供正确的提取文件时会发生这种情况吗?
b)由于存在一百万个zip文件,因此我担心像过程中那样使用方式1: 循环遍历一百万个zip文件并使用每个文件的过程要花费多少。 我真的很想使用Way 2,但是由于某种原因它给出了例外。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.