![C# dilinde 7Zip Arşivi oluşturun](images/Create-7Zip-Archive-in-C.jpg#center)
Ö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:
- C# kullanarak 7z (7-Zip) Arşivi oluşturun
- C# kullanarak AES Şifreli 7z Arşivi oluşturun
- C# Kullanarak 7z Girişleri İçin Farklı Parolalar Ayarlayın
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:
- NuGet Paket Yöneticisi kullanarak kurun.
- İndirmek DLL and add its reference to the project.
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.
- 7z dosyası oluşturmak için yeni bir FileStream açın.
- SevenZipArchive sınıfının bir örneğini oluşturun.
- SevenZipArchive.CreateEntry(String, String, Boolean, SevenZipEntrySettings) yöntemini kullanarak arşive dosya ekleyin.
- SevenZipArchive.Save(Stream) yöntemini kullanarak arşiv oluşturun ve kaydedin.
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.
- SevenZipArchive sınıfının bir örneğini oluşturun.
- Klasörün yolunu SevenZipArchive.CreateEntries(String, Boolean) yöntemine iletin.
- SevenZipArchive.Save(String) yöntemini çağırın.
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.
- 7z arşiv dosyası için yeni bir FileStream oluşturun.
- FileInfo sınıfını kullanarak her dosya girişine erişin.
- SevenZipArchive sınıfının bir örneğini oluşturun.
- SevenZipArchive.CreateEntry(String, FileInfo, Boolean, SevenZipEntrySettings) kullanarak 7z arşivine giriş oluşturun
- SevenZipArchive.Save(Stream) yöntemini kullanarak arşivi kaydedin.
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.