[英]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.