เหตุใดโฟลเดอร์ zip ของฉันจึงไม่ถูกล็อกด้วยรหัสผ่าน แต่ไฟล์ที่อยู่ภายในถูกล็อก
ตอนนี้ฉันดิ้นรนมาสองสามชั่วโมงแล้วพยายามตั้งรหัสผ่านในโฟลเดอร์ 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
}
อย่างไรก็ตามเมื่อฉันเรียกใช้โปรแกรมนี้มันจะสร้างโฟลเดอร์ zip ที่ชื่อFinalResult.zip
แต่โฟลเดอร์ zip นั้นไม่ได้รับการป้องกันด้วยรหัสผ่าน ไฟล์ทั้งหมดในโฟลเดอร์ zip นั้นได้รับการป้องกันด้วยรหัสผ่าน หากเป็นกรณีนี้ผู้ใช้จะต้องป้อนรหัสผ่านทุกครั้งที่พยายามเปิดไฟล์ภายในซึ่งไม่สะดวก ฉันแค่ต้องการให้ผู้ใช้ป้อนรหัสผ่านเพียงครั้งเดียวเมื่อพวกเขาพยายามเปิดโฟลเดอร์ zip ใครช่วยบอกทีว่าทำไมโค้ดนี้ถึงไม่ทำตามที่ฉันต้องการ
คำตอบ
รหัสผ่านใช้งานได้จริง:
เมื่อเขียนไฟล์ zip รหัสผ่านนี้จะใช้กับรายการไม่ใช่กับไฟล์ zip เอง ใช้กับ ZipEntry ใด ๆ ที่เพิ่มใน ZipFile ในภายหลังโดยใช้หนึ่งในวิธีการ AddFile, AddDirectory, AddEntry หรือ AddItem เป็นต้นเมื่ออ่านไฟล์ zip คุณสมบัตินี้จะใช้กับรายการใด ๆ ที่ดึงมาจาก ZipFile ในภายหลังโดยใช้หนึ่งในวิธีการแยก ในคลาส ZipFile
ดูส่วนข้อสังเกตในเอกสารสำหรับPassword
ใน DotNetZip
https://documentation.help/DotNetZip/4444d7a5-3324-8af9-3ed3-5bf6551d3cd1.htm