C# 如何使用受密码保护的文件夹压缩多个压缩文件?
我正在开发一个程序,将压缩后的文件压缩到一个有密码保护的文件夹中。例如,我在一个文件夹D:\Work\ZippedFile中有多个压缩文件,它是ABC.zip、CDE.zip、TZE.zip。我想将所有压缩文件压缩到一个名为AllFile.zip的压缩文件中,并带有密码保护。到目前为止,我尝试的内容如下:C# 如何使用受密码保护的文件夹压缩多个压缩文件?,c#,zip,C#,Zip,我正在开发一个程序,将压缩后的文件压缩到一个有密码保护的文件夹中。例如,我在一个文件夹D:\Work\ZippedFile中有多个压缩文件,它是ABC.zip、CDE.zip、TZE.zip。我想将所有压缩文件压缩到一个名为AllFile.zip的压缩文件中,并带有密码保护。到目前为止,我尝试的内容如下: string[] dirs = Directory.GetDirectories(@"D:\Work\ZippedFile"); foreach (string dir in dirs) if
string[] dirs = Directory.GetDirectories(@"D:\Work\ZippedFile");
foreach (string dir in dirs)
if (file.Contains(".zip"))
{
using (var zip = new ZipFile())
{
string filename = file.Substring(51);
zip.Password = "Abc!23";
zip.Encryption = EncryptionAlgorithm.WinZipAes256;
zip.AddFile(file, "");
zip.Save(dir + "\\" + "AllFile.zip");
}
}
我知道这将为每个压缩文件输出一个压缩文件,我希望有人能给我一个如何实现正确输出的想法。提前感谢。不要为每个现有的zip文件创建新的zip文件。创建一个新的zip文件,并将所有现有的zip文件添加到其中
using (var zip = new ZipFile())
{
string[] dirs = Directory.GetDirectories(@"D:\Work\ZippedFile");
foreach (string dir in dirs)
{
if (file.Contains(".zip"))
{
string filename = file.Substring(51);
zip.AddFile(file, "");
}
}
zip.Password = "Abc!23";
zip.Encryption = EncryptionAlgorithm.WinZipAes256;
zip.Save(dir + "\\" + "AllFile.zip");
}
这不是很明显吗?将保存和创建ZipFile的新实例移到循环之外(循环中应该只有AddFile),这是否回答了您的问题?