إنشاء أرشيف 7Zip في C#

في المنشور السابق ، لقد ناقشت طرقًا مختلفة لإنشاء أرشيفات ZIP باستخدام C#. تناولت المقالة أيضًا كيفية إنشاء أرشيفات ZIP مشفرة ومحمية بكلمة مرور. إلى جانب تنسيق ZIP ، هناك بعض تنسيقات الأرشيف الأخرى الشائعة الاستخدام مثل 7z ، القطران ، RAR ، إلخ. من بينها ، يعتمد تنسيق الأرشيف 7z على بنية مفتوحة المصدر ويتم استخدامه لضغط الملفات والمجلدات بنسبة ضغط عالية. كما أنه يدعم تشفير 256-بت AES ويسمح بتشفير أسماء الملفات أيضًا. في هذه المقالة ، سأوضح كيفية إنشاء أرشيفات 7z (7-Zip) برمجيًا باستخدام C#.

تنقسم هذه المقالة إلى الأقسام التالية:

تستند جميع الخطوات وعينات التعليمات البرمجية في هذه المقالة إلى Aspose.ZIP for .NET. لذلك ، تأكد من تثبيت واجهة برمجة التطبيقات باستخدام أي من الطرق التالية:

إنشاء أرشيف 7z (7-Zip) باستخدام C#

يمكن أن يكون هناك سيناريوهان محتملان لضغط الملفات في أرشيف 7z. إما أن يكون لديك ملف واحد فقط أو يمكن أن يكون هناك مجموعة من الملفات لضغطها. يمكنك التعامل مع كلا السيناريوهين بشكل صريح.

إنشاء أرشيف 7z بإدخال واحد

فيما يلي خطوات إنشاء أرشيف 7z بإدخال واحد.

يوضح نموذج التعليمات البرمجية التالي كيفية إنشاء أرشيف 7z (7-Zip) باستخدام C#.

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

إنشاء أرشيف 7z مع إدخالات متعددة

في هذه الحالة ، يمكنك وضع الملفات في مجلد وتمرير مسار المجلد إلى طريقة SevenZipArchive.CreateEntries(). فيما يلي خطوات لإضافة إدخالات ملفات متعددة إلى أرشيف 7z.

يوضح نموذج التعليمات البرمجية التالي كيفية إنشاء أرشيف 7z بإدخالات متعددة باستخدام C#.

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

قم بإنشاء أرشيف AES 7z مشفر باستخدام C#

يدعم تنسيق 7z تشفير AES لتأمين الملفات. لتشفير ملف 7z ، يتم استخدام الفئة SevenZipAESEncryptionSettings. يوضح نموذج التعليمات البرمجية التالي كيفية إنشاء أرشيف 7z مشفر AES باستخدام 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");
}

قم بتعيين كلمات مرور مختلفة لإدخالات 7z باستخدام C#

يسمح لك تنسيق 7z أيضًا بتحديد كلمة مرور مختلفة لكل إدخال ملف. على سبيل المثال ، إذا كنت ستضغط ملفين في أرشيف 7z ، فيمكنك تحديد كلمة مرور مختلفة لكل ملف. فيما يلي خطوات تعيين كلمات مرور مختلفة لإدخالات 7z.

يوضح نموذج التعليمات البرمجية التالي كيفية تعيين كلمة مرور لكل إدخال في أرشيف 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);
    }
}

استنتاج

في هذه المقالة ، تعلمنا كيفية إنشاء أرشيفات 7z برمجيًا باستخدام C#. بالإضافة إلى ذلك ، رأينا كيفية إنشاء ملفات 7z مشفرة AES وتعيين كلمة مرور لكل إدخال ملف. يمكنك معرفة المزيد حول ضغط / إلغاء ضغط الملفات من هنا.

مقالات ذات صلة