ตั้งรหัสผ่านไฟล์ Zip โดยใช้ DotNetZip

ฉันใช้ DotNetZip เพื่อบีบอัดไฟล์ แต่ฉันต้องตั้งรหัสผ่านในรูปแบบ zip

ฉันพยายาม:

public void Zip(string path, string outputPath)
    {
        using (ZipFile zip = new ZipFile())
        {
            zip.AddDirectory(path);
            zip.Password = "password";
            zip.Save(outputPath);
        }
    }

แต่ไฟล์ zip เอาท์พุตไม่มีรหัสผ่าน

พารามิเตอร์ pathhas มีโฟลเดอร์ย่อยสำหรับตัวอย่าง: path = c:\path\ และเส้นทางภายในที่ฉันมี subfolder

เกิดอะไรขึ้น?


person Jean Carlos    schedule 18.10.2016    source แหล่งที่มา
comment
ถือว่าเส้นทางคือ C:\folder1\folder2\file1.txt โฟลเดอร์ใดที่คุณต้องการ zip และล็อคด้วยรหัสผ่าน   -  person Amey Kamat    schedule 18.10.2016
comment
ไม่ เส้นทางคือโฟลเดอร์และโฟลเดอร์นั้นมีโฟลเดอร์ย่อย ฉันต้องการให้ DotNetZip zip โฟลเดอร์ย่อยของฉันและไฟล์ข้างในนั้น ฉันสามารถทำได้ แต่รหัสผ่านใช้งานไม่ได้ เป็นครั้งแรกที่ฉันใช้ lib นั้น   -  person Jean Carlos    schedule 18.10.2016


คำตอบ (1)


เฉพาะรายการที่เพิ่ม หลัง คุณสมบัติ Password เท่านั้นที่จะถูกใช้รหัสผ่าน เพื่อปกป้องไดเร็กทอรีที่คุณกำลังเพิ่ม เพียงตั้งรหัสผ่านก่อนโทร 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);
}
person petelids    schedule 18.10.2016
comment
ขอบคุณครับ การแก้ปัญหาก็ดี แต่เราจะซ่อนชื่อไฟล์ขณะเข้ารหัสได้อย่างไร? - person Habip Oğuz; 26.07.2019
comment
@ HabipOğuz - ฉันไม่คิดว่าคุณจะทำได้ การเข้ารหัสอยู่ในไฟล์และไม่ได้อยู่บนคอนเทนเนอร์ zip เอง วิธีเดียวที่จะบรรลุเป้าหมายที่ฉันรู้คือการเข้ารหัสสองครั้ง ดังนั้นหากมีคนเปิดไฟล์ zip สิ่งที่พวกเขาจะเห็นก็คือไฟล์ zip อีกไฟล์หนึ่ง - person petelids; 26.07.2019
comment
@petelids ฮิมม์ ขอบคุณมาก ครั้งนั้นฉันจะค้นหาอันที่ซื้อมาเช่น WinRar - person Habip Oğuz; 26.07.2019
comment
@ HabipOğuz - ฉันเชื่อว่า 7zip สามารถทำสิ่งที่คุณต้องการได้ - person petelids; 26.07.2019