Por que minha pasta zip não está bloqueada com senha, mas os arquivos dentro dela estão bloqueados?
Estou lutando há algumas horas, tentando definir uma senha em uma pasta zip. Porém, por mais que eu tente com códigos diferentes, a senha é aplicada a cada arquivo dentro da pasta zip, e não é isso que eu quero. Eu só quero aplicar a senha à própria pasta e nenhuma senha deve ser definida para os arquivos individuais dentro dela.
Aqui está o meu código: (Para sua informação, estou usando 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
}
No entanto, quando executo este programa, ele cria uma pasta zip chamada FinalResult.zip
, mas essa pasta zip não é protegida por senha. Todos os arquivos dentro dessa pasta zip são protegidos por senha. Se for esse o caso, o usuário terá que digitar a senha toda vez que tentar abrir um arquivo dentro dele, o que é meio inconveniente. Eu só quero que o usuário tenha que digitar a senha apenas uma vez quando tentar abrir a pasta zip. Alguém pode me dizer por que esse código não faz o que eu quero alcançar?
Respostas
A senha está realmente funcionando corretamente:
Ao escrever um arquivo zip, esta senha é aplicada às entradas, não ao próprio arquivo zip. Aplica-se a qualquer ZipEntry posteriormente adicionado ao ZipFile, usando um dos métodos AddFile, AddDirectory, AddEntry ou AddItem, etc. Ao ler um arquivo zip, esta propriedade se aplica a qualquer entrada posteriormente extraída do ZipFile usando um dos métodos Extract na classe ZipFile.
Consulte a seção de comentários na documentação Password
em DotNetZip
https://documentation.help/DotNetZip/4444d7a5-3324-8af9-3ed3-5bf6551d3cd1.htm