【发布时间】:2020-08-18 20:20:14
【问题描述】:
我已经挣扎了几个小时,试图在 zip 文件夹上设置密码。 但是,无论我多次尝试使用不同的代码,密码都会应用于 zip 文件夹中的每个文件,这不是我想要的。我只想将密码应用到文件夹本身,不应该为里面的单个文件设置密码。
这是我的代码:(供您参考,我使用的是 DotNetZip)
//Assume that there is a folder with multiple files in it at C:\\ExampleFolder
using (Ionic.Zip.ZipFile z = Ionic.Zip.ZipFile())
{
z.Password = "MyPassword"; //Setting the password
z.AddDirectory(@"C:\\ExampleFolder"); //I thought the directory added here should be pw-protected
z.Save(@"C:\\FinalResult.zip"); //Create the pw-protected zip folder
}
但是,当我运行这个程序时,它确实创建了一个名为 FinalResult.zip 的 zip 文件夹,但该 zip 文件夹不受密码保护。该 zip 文件夹中的所有文件均受密码保护。如果是这种情况,用户每次尝试打开其中的文件时都必须输入密码,这有点不方便。我只希望用户在尝试打开 zip 文件夹时只需输入一次密码。
谁能告诉我为什么这段代码不能达到我想要的效果?
【问题讨论】:
-
Zip 文件(没有 zip“文件夹”之类的东西)不支持加密其文件列表,仅支持文件内容本身。 Windows 行为反映了这一事实,您可以正常打开存档,并且在提取其中一个文件时只需要密码。您需要使用比 zip 更严格的文件格式(如 rar 或 7zip)来实现这一点,同时使用不同的库。您所拥有的是最好的 zip 文件。
标签: dotnetzip