نظرة عامة

يمكننا تقسيم أدوات الأرشفة والضغط إلى ثلاث فئات رئيسية:
- أرشفة عدة ملفات عادةً بالضغط - ZIP، 7Z، XAR؛
- تخزين عدة ملفات بدون ضغط - TAR، CPIO؛
- الضغط -تنسيقات فقط بدون إدخالات - GZ، LZ، BZIP2، XZ، ZStandard، Z.
غالبًا ما يتم دمج أرشيفات الفئة الثانية مع تنسيقات الضغط فقط. وهي تحظى بشعبية كبيرة في الأنظمة المشابهة لنظام Unix بفضل عملياتها المميزة - واحدة للأرشفة وأخرى للضغط. فيما يلي شرح وعينات لكل نوع من أنواع الأرشيف.

الأرشيفات المضغوطة التي تحتوي على ملفات متعددة

نستخدم طريقة CreateEntry لكل ملف يتم ضغطه. في هذه العينات، لا نوفر إعدادات الضغط بحيث تكون افتراضية للتنسيق المختار.

كيفية ضغط عدة ملفات

الافتراضي هو خوارزمية انكماش

Zip compression with Deflate algoritm

    using (Archive archive = new Archive())
    {
        archive.CreateEntry("first.bin",  "data1.bin");
        archive.CreateEntry("second.bin",  "data2.bin");
        // Add as many entries as you need 
        archive.Save("archive.zip");	
    }

كيفية إنشاء أرشيفات 7-ZIP لعدة ملفات

الافتراضي لـ 7-zip هو خوارزمية LZMA

7-Zip with LZMA algorithm

    using (SevenZipArchive archive = new SevenZipArchive())
    {
        archive.CreateEntry("first.bin",  "data1.bin");
        archive.CreateEntry("second.bin",  "data2.bin");	
        // Add as many entries as you need 	
        archive.Save("archive.7z");	
    }

أرشيف XAR مع عدة ملفات

الافتراضي هو خوارزمية ZLib

XAR with ZLib algorithm

    using (XarArchive archive = new XarArchive())
    {
        archive.CreateEntry("first.bin",  "data1.bin");
        archive.CreateEntry("second.bin",  "data2.bin");
        // Add as many entries as you need 	
        archive.Save("archive.xar");	
    }

تخزين عدة ملفات بدون ضغط

نهج تنسيقات TAR وCPIO مشابه ويكمن في طريقة CreateEntry المعروفة بالفعل.

أرشيف TAR بدون ضغط

TAR storing files without compression

    using (TarArchive archive = new TarArchive())
    {
        archive.CreateEntry("first.bin",  "data1.bin");
        archive.CreateEntry("second.bin",  "data2.bin");
        // Add as many entries as you need 
        archive.Save("archive.tar");
    }

أرشيف CPIO بدون ضغط

CPIO storing files without compression

    using (TarArchive archive = new TarArchive())
    {
        archive.CreateEntry("first.bin",  "data1.bin");
        archive.CreateEntry("second.bin",  "data2.bin");
        // Add as many entries as you need 
        archive.Save("archive.cpio");
    }

تنسيقات الضغط فقط بدون إدخالات

مثل هذه الأرشيفات مثل GZIP وLZ وBZIP2 وXZ وZ لا تدعم الإدخالات ويمكنها ضغط مصدر واحد فقط. انظر العينات مع هذا الضغط.

أرشيف GZ - تنسيقات الضغط فقط بدون إدخالات

GZIP with compress only single source

using (FileStream source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
{
    using (GzipArchive archive = new GzipArchive())
    {
        archive.SetSource(source);
        archive.Save("archive.gz");
    }
}

أرشيف LZ هو تنسيقات الضغط فقط بدون إدخالات

LZIP with compress only single source

using (FileStream source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
{
    using (GzipArchive archive = new GzipArchive())
    {
        archive.SetSource(source);
        archive.Save("archive.gz");
    }
}

يسمح Aspose.ZIP بدمج تنسيقات الأرشيف فقط والضغط فقط بطريقة واحدة. فيما يلي مثال لهذه الوظيفة مع مجموعة TAR.GZ. لتحقيق ذلك، نستخدم طريقة SaveGzipped.

تركيبة TAR.GZ

توجد طرق مشابهة لتنسيقات الضغط LZIP وXZ وZStandard وZ.

TAR.GZ with SaveGzipped method

    using (TarArchive archive = new TarArchive())
    {
        archive.CreateEntry("first.bin",  "data1.bin");
        archive.CreateEntry("second.bin",  "data2.bin");
        archive.SaveGzipped("archive.tar.gz");
    }

TAR.BZ2

ومع ذلك، نحتاج إلى استخدام طريقة أخرى لتنسيق BZIP2.

BZIP2 with SaveGzipped method

    using (TarArchive tar = new TarArchive())
    {
        tar.CreateEntry("first.bin",  "data1.bin");
        tar.CreateEntry("second.bin",  "data2.bin");	
        using (Bzip2Archive archive = new Bzip2Archive())
        {
            archive.SetSource(tar);
            archive.Save("archive.tar.bz2");
        } 
    }

ميزات Aspose.ZIP الأخرى المدعومة لـ .NET API

استخدم مكتبة Aspose.ZIP C# لتحويل مستندات الملفات المضغوطة ودمجها وتحريرها واستخراج البيانات من الأرشيفات والمزيد!

  

Support and Learning Resources

  
  

Aspose.Zip offers individual archive processing APIs for other popular development environments, listed below: