Mengapa folder zip saya tidak dikunci dengan kata sandi, tetapi file di dalamnya dikunci?
Saya telah berjuang selama beberapa jam sekarang, mencoba mengatur kata sandi pada folder zip. Namun, betapapun saya mencoba dengan kode yang berbeda, kata sandi diterapkan ke setiap file di dalam folder zip, dan bukan itu yang saya inginkan. Saya hanya ingin menerapkan kata sandi ke folder itu sendiri, dan tidak ada kata sandi yang harus disetel ke file individual di dalamnya.
Ini kode saya: (Untuk informasi Anda, saya menggunakan 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
}
Namun, ketika saya menjalankan program ini, itu membuat folder zip bernama FinalResult.zip
, tetapi folder zip itu tidak dilindungi kata sandi. Semua file di dalam folder zip itu dilindungi kata sandi. Jika ini masalahnya, pengguna harus memasukkan kata sandi setiap kali mereka mencoba membuka file di dalamnya, yang agak merepotkan. Saya hanya ingin pengguna memasukkan kata sandi hanya sekali ketika mereka mencoba membuka folder zip. Adakah yang bisa memberi tahu saya mengapa kode ini tidak melakukan apa yang ingin saya capai?
Jawaban
Kata sandi sebenarnya berfungsi dengan benar:
Saat menulis arsip zip, kata sandi ini diterapkan pada entri, bukan arsip zip itu sendiri. Ini berlaku untuk semua ZipEntry yang kemudian ditambahkan ke ZipFile, menggunakan salah satu metode AddFile, AddDirectory, AddEntry, atau AddItem, dll. Saat membaca arsip zip, properti ini berlaku untuk entri apa pun yang kemudian diekstrak dari ZipFile menggunakan salah satu metode Ekstrak di kelas ZipFile.
Lihat bagian keterangan dalam dokumentasi untuk Password
di DotNetZip
https://documentation.help/DotNetZip/4444d7a5-3324-8af9-3ed3-5bf6551d3cd1.htm