Buat Arsip 7Zip di C#

Di posting sebelumnya, saya telah membahas berbagai cara membuat arsip ZIP menggunakan C#. Artikel tersebut juga membahas cara membuat arsip ZIP terenkripsi dan dilindungi kata sandi. Selain format ZIP, ada beberapa format arsip lain yang umum digunakan seperti 7z, tar, RAR, dll. Di antaranya, format arsip 7z didasarkan pada arsitektur open-source dan digunakan untuk mengompres file dan folder dengan rasio kompresi yang tinggi. Ini juga mendukung enkripsi AES 256-bit dan memungkinkan mengenkripsi nama file juga. Pada artikel ini, saya akan mendemonstrasikan cara membuat arsip 7z (7-Zip) secara terprogram menggunakan C#.

Artikel ini dibagi menjadi beberapa bagian berikut:

Semua langkah dan contoh kode dalam artikel ini didasarkan pada Aspose.ZIP for .NET. Oleh karena itu, pastikan Anda telah menginstal API menggunakan salah satu metode berikut:

Buat Arsip 7z (7-Zip) menggunakan C#

Mungkin ada dua kemungkinan skenario untuk mengompresi file ke dalam arsip 7z. Entah Anda hanya memiliki satu file atau mungkin ada banyak file yang akan dikompresi. Anda dapat menangani kedua skenario secara eksplisit.

Buat Arsip 7z dengan Entri Tunggal

Berikut langkah-langkah membuat arsip 7z dengan satu entri.

Contoh kode berikut menunjukkan cara membuat arsip 7z (7-Zip) menggunakan C#.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(sevenZipFile);
    }
}

Buat Arsip 7z dengan Banyak Entri

Dalam hal ini, Anda dapat meletakkan file dalam folder dan meneruskan jalur folder ke metode SevenZipArchive.CreateEntries(). Berikut ini adalah langkah-langkah untuk menambahkan beberapa entri file ke arsip 7z.

Contoh kode berikut menunjukkan cara membuat arsip 7z dengan banyak entri menggunakan C#.

using (SevenZipArchive archive = new SevenZipArchive())
{
    archive.CreateEntries(dataDir);
    archive.Save("SevenZip.7z");
}

Buat Arsip 7z Terenkripsi AES menggunakan C#

Format 7z mendukung enkripsi AES untuk mengamankan file. Untuk mengenkripsi file 7z, kelas SevenZipAESencryptionSettings digunakan. Contoh kode berikut menunjukkan cara membuat arsip 7z terenkripsi AES menggunakan C#.

using (var archive = new SevenZipArchive(new SevenZipEntrySettings(null, new SevenZipAESEncryptionSettings("p@s$"))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] { 0x00, 0xFF }));
    archive.Save("archive.7z");
}

Tetapkan Kata Sandi Berbeda untuk Entri 7z menggunakan C

Format 7z juga memungkinkan Anda menentukan kata sandi yang berbeda untuk setiap entri file. Misalnya, jika Anda akan mengompresi dua file dalam arsip 7z, Anda dapat menentukan kata sandi yang berbeda untuk setiap file. Berikut ini adalah langkah-langkah untuk mengatur kata sandi yang berbeda untuk entri 7z.

Contoh kode berikut menunjukkan cara mengatur kata sandi untuk setiap entri dalam arsip 7z.

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test1")));
        archive.CreateEntry("entry2.bin", fi2, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test2")));
        archive.CreateEntry("entry3.bin", fi3, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test3")));
        archive.Save(sevenZipFile);
    }
}

Kesimpulan

Pada artikel ini, kita telah mempelajari cara membuat arsip 7z secara terprogram menggunakan C#. Selain itu, kami telah melihat cara membuat file 7z terenkripsi AES dan mengatur kata sandi untuk setiap entri file. Anda dapat mempelajari lebih lanjut tentang kompresi/dekompresi file dari di sini.

Artikel Terkait