Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为700 GB文件使用密码时Zip进程耗时过长_C#_Dotnetzip - Fatal编程技术网

C# 为700 GB文件使用密码时Zip进程耗时过长

C# 为700 GB文件使用密码时Zip进程耗时过长,c#,dotnetzip,C#,Dotnetzip,我对一个700 GB的文件使用了下面没有密码选项的代码,它运行得非常快(大约4小时)。使用7ZIP进行完全相同的尝试大约需要2天时间。但是,当我添加password选项时,它只显示正在创建的zip文件的零字节。下面的代码(特定于密码)有什么问题吗?如果指定了密码,下面的代码是否会运行得更快 string password = "uG9GHi@4"; Console.WriteLine("txtFileInPath 991 :" + txtFileInPath); Console.WriteLi

我对一个700 GB的文件使用了下面没有密码选项的代码,它运行得非常快(大约4小时)。使用7ZIP进行完全相同的尝试大约需要2天时间。但是,当我添加password选项时,它只显示正在创建的zip文件的零字节。下面的代码(特定于密码)有什么问题吗?如果指定了密码,下面的代码是否会运行得更快

string password = "uG9GHi@4";

Console.WriteLine("txtFileInPath 991 :" + txtFileInPath);
Console.WriteLine("zipFileOutPath :" + zipFileOutPath);
Console.WriteLine("Password       :" + password);
Console.WriteLine("running        :" + DateTime.Now);

using (ZipFile zip = new ZipFile())
{                        
    zip.UseZip64WhenSaving = Zip64Option.Always;                
    zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;                
    //zip.Password = password;               
    Console.WriteLine("Before AddFile    :" + DateTime.Now);
    zip.AddFile(txtFileInPath, "").Password = password;
    Console.WriteLine("After AddFile    :" + DateTime.Now);

    Console.WriteLine("Before zip.Save    :" + DateTime.Now);
    zip.Save(zipFileOutPath);                
    Console.WriteLine("After zip.Save    :" + DateTime.Now);
}
Console.WriteLine("End              :" + DateTime.Now);

加密确实需要很多时间。至于7Zip,如果启用并行处理,则使用所有可用的内核,其执行速度要快得多。如果DotNetZip不允许并行处理,您可能必须购买商业版本。我相信DotNetZip已经完成了所需的并行处理(无代码更改)。使用不带密码的DotNetZip进行加密的速度非常快,但是,当添加密码时,速度会变得非常慢。如果使用
zip.encryption=EncryptionAlgorithm.WinZipAes256
,有什么不同吗?我确实尝试过,速度更快……但仍然不理想。不带密码压缩700 GB的文件需要约5个小时(164 GB的结果文件)。