Tetapkan kata sandi pada file Zip menggunakan DotNetZip

Saya menggunakan DotNetZip untuk membuat zip file saya, namun saya perlu menyetel sandi dalam zip.

Saya mencoba:

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

Tetapi zip keluarannya tidak memiliki kata sandi.

Parameter pathmemiliki subfolder misalnya: path = c:\path\ dan jalur di dalam saya memiliki subfolder

Apa yang salah?


person Jean Carlos    schedule 18.10.2016    source sumber
comment
asumsikan jalurnya adalah C:\folder1\folder2\file1.txt folder mana yang ingin Anda zip dan kunci dengan kata sandi?   -  person Amey Kamat    schedule 18.10.2016
comment
Tidak, jalurnya adalah folder dan folder itu memiliki subfolder. Saya ingin DotNetZip meng-zip subfolder saya dan file di dalamnya. Saya dapat melakukan ini, tetapi kata sandinya tidak berfungsi. Apakah pertama kali saya menggunakan lib itu.   -  person Jean Carlos    schedule 18.10.2016


Jawaban (1)


Hanya entri yang ditambahkan setelah properti Password disetel yang akan menerapkan kata sandi. Untuk melindungi direktori yang Anda tambahkan, cukup atur kata sandi sebelum memanggil AddDirectory.

using (ZipFile zip = new ZipFile())
{
    zip.Password = "password";
    zip.AddDirectory(path);
    zip.Save(outputPath);
}

Perhatikan bahwa ini karena kata sandi pada file Zip dialokasikan ke entri dalam file zip dan bukan pada file zip itu sendiri. Ini memungkinkan Anda untuk melindungi sebagian file zip Anda dan sebagian tidak:

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
Terima kasih, solusinya bagus. Tapi bagaimana kita bisa menyembunyikan nama file saat enkripsi? - person Habip Oğuz; 26.07.2019
comment
@HabipOğuz - Saya rasa Anda tidak bisa. Enkripsi ada pada file dan bukan pada wadah zip itu sendiri. Satu-satunya cara untuk mencapainya yang saya tahu adalah dengan mengenkripsi ganda sehingga jika seseorang membuka arsip zip, yang mereka lihat hanyalah file zip lain. - person petelids; 26.07.2019
comment
@petelids, hai, terima kasih banyak. Kali ini saya akan mencari yang dibeli seperti WinRar. - person Habip Oğuz; 26.07.2019
comment
@HabipOğuz - Saya yakin 7zip dapat melakukan apa yang Anda inginkan. - person petelids; 26.07.2019