C# dilinde 7Zip Arşivi oluşturun

Önceki gönderide, C# kullanarak ZIP arşivleri oluşturmanın farklı yollarını tartıştım. Makale ayrıca şifreli ve parola korumalı ZIP arşivlerinin nasıl oluşturulacağını da kapsıyordu. ZIP formatının yanı sıra 7z, tar, RAR gibi yaygın olarak kullanılan başka arşiv formatları da vardır. Bunların arasında 7z arşiv formatı açık kaynak mimarisine dayalıdır. dosya ve klasörleri yüksek sıkıştırma oranıyla sıkıştırmak için kullanılır. Ayrıca 256 bit AES şifrelemeyi destekler ve dosyaların adlarının da şifrelenmesine izin verir. Bu makalede, C# kullanarak programlı olarak 7z (7-Zip) arşivlerinin nasıl oluşturulacağını göstereceğim.

Bu makale aşağıdaki bölümlere ayrılmıştır:

Bu makaledeki tüm adımlar ve kod örnekleri Aspose.ZIP for .NET tabanlıdır. Bu nedenle, API’yi aşağıdaki yöntemlerden birini kullanarak kurduğunuzdan emin olun:

C# kullanarak 7z (7-Zip) Arşivi oluşturun

Dosyaları bir 7z arşivine sıkıştırmanın iki olası senaryosu olabilir. Ya tek bir dosyanız var ya da sıkıştırılacak bir sürü dosya olabilir. Her iki senaryoyu da açıkça ele alabilirsiniz.

Tek Girişle 7z Arşivi Oluşturun

Tek bir girişle 7z arşivi oluşturma adımları aşağıdadır.

Aşağıdaki kod örneği, C# kullanarak bir 7z (7-Zip) arşivinin nasıl oluşturulacağını gösterir.

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

Birden Çok Girişle 7z Arşivi Oluşturun

Bu durumda, dosyaları bir klasöre koyabilir ve klasörün yolunu SevenZipArchive.CreateEntries() yöntemine iletebilirsiniz. Aşağıdakiler, bir 7z arşivine birden çok dosya girişi ekleme adımlarıdır.

Aşağıdaki kod örneği, C# kullanarak birden çok girdi içeren bir 7z arşivinin nasıl oluşturulacağını gösterir.

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

C# kullanarak AES Şifreli 7z Arşivi oluşturun

7z formatı, dosyaların güvenliğini sağlamak için AES şifrelemesini destekler. 7z dosyasını şifrelemek için SevenZipAESEncryptionSettings sınıfı kullanılır. Aşağıdaki kod örneği, C# kullanarak AES şifreli bir 7z arşivinin nasıl oluşturulacağını gösterir.

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");
}

C# Kullanarak 7z Girişleri İçin Farklı Parolalar Ayarlayın

7z formatı ayrıca her dosya girişi için farklı bir şifre belirlemenizi sağlar. Örneğin bir 7z arşivinde iki dosyayı sıkıştıracaksanız her dosya için farklı bir şifre belirleyebilirsiniz. 7z girişleri için farklı şifreler belirleme adımları aşağıdadır.

Aşağıdaki kod örneği, bir 7z arşivindeki her giriş için parolanın nasıl ayarlanacağını gösterir.

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);
    }
}

Çözüm

Bu yazımızda C# kullanarak programlı olarak 7z arşivi oluşturmayı öğrendik. Ayrıca AES şifreli 7z dosyaları oluşturmayı ve her dosya girişi için bir şifre belirlemeyi gördük. Dosyaların sıkıştırılması/açılması hakkında daha fazla bilgiyi buradan edinebilirsiniz.

İlgili Makaleler