DotNetZip を使用してファイルを圧縮していますが、パスワードをZipに設定する必要があります。
私が試しました:
public void Zip(string path, string outputPath)
{
using (ZipFile Zip = new ZipFile())
{
Zip.AddDirectory(path);
Zip.Password = "password";
Zip.Save(outputPath);
}
}
ただし、出力Zipにはパスワードがありません。
パラメーターpath
には、例のサブフォルダーがあります:path = c:\path\
と内部パスにはsubfolder
があります
なにが問題ですか?
追加されたエントリのみafterPassword
プロパティが設定されている場合、パスワードが適用されます。追加するディレクトリを保護するには、AddDirectory
を呼び出す前にパスワードを設定するだけです。
using (ZipFile Zip = new ZipFile())
{
Zip.Password = "password";
Zip.AddDirectory(path);
Zip.Save(outputPath);
}
これは、ZipファイルのパスワードがZipファイル自体ではなく、Zipファイル内のエントリに割り当てられるためです。これにより、Zipファイルの一部を保護でき、一部は保護できません。
using (ZipFile Zip = new ZipFile())
{
//this won't be password protected
Zip.AddDirectory(unprotectedPath);
Zip.Password = "password";
//...but this will be password protected
Zip.AddDirectory(path);
Zip.Save(outputPath);
}