نظرة عامة

تحتوي الأرشيفات التي تتكون من إدخالات على طريقة createEntries لضغط المجلد بأكمله. تحترم هذه الأساليب بنية الدليل وتؤلف بشكل متكرر كافة المجلدات الفرعية. كما يمكنك إضافة إدخال ملف واحد إلى مجلد فرعي عشوائي في أي مكان إلى الأرشيف.

كيفية عمل أرشيف مضغوط

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

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

يقوم هذا الكود بإنشاء أرشيف ZIP باسم “archive.zip” يحتوي على ملفين: “data1.bin” و"data2.bin". فيما يلي تفصيل لكيفية العمل:

  • إدارة الموارد تلقائيًا: يستخدم الكود كتلة try-with-resources لضمان الإدارة السليمة للموارد. تقوم هذه الكتلة تلقائيًا بإغلاق كائن الأرشيف عند اكتماله.
  • إضافة ملفات إلى الأرشيف: داخل الكتلة، يستخدم الكود طريقة createEntry مرتين لإضافة ملفات إلى الأرشيف:
    - يُسمى الإدخال الأول “first.bin” ويحتوي على محتويات الملف “data1.bin”.
    - الإدخال الثاني يسمى “secret.bin” ويحتوي على محتويات الملف “data2.bin”.
  • حفظ الأرشيف: وأخيرًا، يتم استدعاء أسلوب الحفظ. كائن الأرشيف لحفظ أرشيف ZIP المنشأ حديثًا بالإدخالات المحددة في “archive.zip”.

كيفية إضافة الملفات إلى أرشيف 7zip

لإضافة عدة مرفقات إلى أرشيف واحد بتنسيق 7zip، نستخدم فئة SevenZipArchive جنبًا إلى جنب مع أساليب createEntry و save بطريقة مماثلة.

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

تنفذ التعليمة البرمجية التالية نفس الإجراءات التي قام بها الإجراء السابق، ولكن للتنسيق 7-ZIP .

TAR يقوم بعمل أرشيف

غالبًا ما يتضمن توسيع الأرشيفات استخراج ملفات جديدة وإضافتها وإعادة ضغطها، وهي عملية كثيفة الاستخدام للموارد. يقدم Aspose.ZIP حلاً أكثر ذكاءً في Java. ما عليك سوى فتح الأرشيف لاستخراجه وإضافة إدخالات جديدة مباشرة، وتجنب إعادة التعبئة غير الضرورية. يعمل هذا الأسلوب الفعال مع تنسيق أرشيف TAR.

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

يشترك هذا التطبيق في وظائف التطبيق السابق، ولكنه مصمم للأرشيفات بامتداد TAR .

كيفية إنشاء ملف GZ

تنسيقات الضغط فقط بدون إدخالات. لا تدعم تنسيقات الضغط هذه، بما في ذلك GZIP وLZ وBZIP2 وXZ وZ، إدخالات الملفات. يمكنهم فقط ضغط ملف مصدر واحد في المرة الواحدة.

    try (FileInputStream source = new FileInputStream("alice29.txt")) {
        try (GzipArchive archive = new GzipArchive()) {
            archive.setSource(source);
            archive.save("archive.gz");
        }
    } catch (IOException ex) {
        System.err.println(ex.getMessage());
    }

إنشاء TAR GZ

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

    try (TarArchive archive = new TarArchive()) {
        archive.createEntry("first.bin", "data1.bin");
        archive.createEntry("second.bin", "data2.bin");
        archive.saveGzipped("archive.tar.gz");
    }

إنشاء تارز

أولاً، نقوم بإنشاء كائن FileInputStream، متصلاً بالملف المراد أرشفته. بعد ذلك، نقوم بإنشاء كائن LzipArchive، وتعيين المصدر إلى كائن FileInputStream الذي تم إنشاؤه مسبقًا وحفظ الأرشيف.

    try (FileInputStream source = new FileInputStream("alice29.txt")) {
        try (LzipArchive archive = new LzipArchive()) {
            archive.setSource(source);
            archive.save("archive.lz");
        }
    } catch (IOException ex) {
        System.err.println(ex.getMessage());
    }

قم بإنشاء ملف TAR BZ2

يقدم Aspose.ZIP طرقًا مشابهة لضغط الأرشيفات بتنسيقات LZIP وXZ وZStandard وZ. ومع ذلك، هناك حاجة إلى نهج مختلف لـ BZIP2.

    try (TarArchive tar = new TarArchive()) {
        tar.createEntry("first.bin", "data1.bin");
        tar.createEntry("second.bin", "data2.bin");
        try (Bzip2Archive archive = new Bzip2Archive()) {
            archive.setSource(tar);
            archive.save("archive.tar.bz2");
        }
    }

يجمع بناء الكود هذا بين استخدام تنسيقين مختلفين للأرشيف، وهما TAR وBzip2. الميزة الرئيسية هي أن أرشيف TAR يتم إنشاؤه أولاً باستخدام فئة TarArchive عن طريق إضافة عدة ملفات إليه باستخدام طريقة createEntry، ثم يتم ضغط هذا الأرشيف إلى تنسيق Bzip2 باستخدام فئة Bzip2Archive .

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

باستخدام مكتبة Aspose.ZIP في Java، يمكنك التعامل بسهولة مع المهام المتنوعة المتعلقة بمستندات الملفات المضغوطة. سواء كنت بحاجة إلى تحويل التنسيقات أو دمج الملفات أو تحرير المحتويات أو استخراج البيانات، فإن Aspose.ZIP يوفر وظائف شاملة لتبسيط سير عملك وتحسين الإنتاجية.

  

Support and Learning Resources

  
  

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