نظرة عامة

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

كيفية ضغط مجلد

إذا كنت تريد إنشاء أرشيف ZIP من مجلد كامل مع الحفاظ على البنية، فيمكنك استخدام Aspose.Zip API لـ Java والتعليمة البرمجية التالية. تقوم بنية try-with-resources تلقائيًا بإغلاق مورد الأرشيف بعد تنفيذ جميع التعليمات البرمجية، بغض النظر عما إذا تم إغلاق جميع الملفات بشكل صحيح. يشير المسار المحدد في كائن الملف المتن إلى المجلد الذي سيتم ضغطه. باستخدام createEntries، تتم إضافة كل عنصر من عناصر الأرشيف بشكل منفصل، وبالتالي الحفاظ على البنية الأصلية، والتي يتم تخزينها في ملف يسمى "archive.zip". من المهم ملاحظة أن الكود لا يتحقق من وجود المجلد "D:/Data" أو وجود الملفات فيه. إذا كان الدليل غير موجود أو كان فارغًا، فلن يقوم الكود بإنشاء أي أرشيف.
يحتوي الأسلوب CreateEntries على معلمة ثانية اختيارية includeRootDirectory والتي يشير إلى ما إذا كان الدليل الجذر يحتاج إلى تضمينه في الأرشيف. الافتراضي هو صحيح، لذلك في النموذج أعلاه سيتم وضع كافة إدخالات الأرشيف داخل مجلد "البيانات". إذا كنت تريد إضافة محتوى الدليل فقط، فقم بتمرير خطأ هناك.
نموذج - إنشاء أرشيف من المجلد:

    try (Archive archive = new Archive()) {
        File corpus = new File("D:\\Data");
        archive.createEntries(corpus);
        archive.save("archive.zip");
    }

يقوم مثال التعليمات البرمجية التالي بإنشاء أرشيف ZIP يحتوي على ملفين: "image.bmp" و"lyrics.txt". تمثل المتغيرات fi1 وfi2 هذه الملفات. يتم استخدام الأسلوب createEntry لكائن الأرشيف لإضافة كل ملف إلى الأرشيف بالمسارات المحددة: "data/pictures" لـ "image.bmp" و"data/text" لـ "lyrics.txt". باختصار، يقوم هذا الرمز بإنشاء أرشيف ZIP باسم "archive.zip" يحتوي على مجلدين، "data/pictures" و"data/text"، يحتوي كل منهما على أحد الملفات المعنية.

    try (Archive archive = new Archive()) {
        File fi1 = new File("image.bmp");
        File fi2 = new File("lyrics.txt");
        archive.createEntry("data\\pictures\\photo.bmp", fi1);
        archive.createEntry("data\\text\\song.txt", fi2);
        archive.save("archive.zip");
    }

كيفية ضغط المجلد في 7-ZIP مع مراعاة بنيته

يوضح التعليمة البرمجية التالية كيفية إنشاء أرشيف 7Z وإضافة كافة الملفات والمجلدات من الدليل المحدد إليه. إنه يعمل بشكل مشابه للأرشيف بتنسيق ملف ZIP. CreateEntries هي الطريقة التناظرية لأرشيف 7Z. كما أن لديها معلمة includeRootDirectory. هام: سيتم تنفيذه في Aspose.ZIP for Java 24.4

    try (SevenZipArchive archive = new SevenZipArchive()) {
        File corpus = new File("D:\\Data");
        archive.createEntries(corpus);
        archive.save("archive.7z");
    }

كيفية ضغط مجلد في TAR مع الحفاظ على هيكله

يقوم الكود بإنشاء أرشيف TAR للدليل المحدد. يستخدم فئة TarArchive من Java Archive API لتحقيق ذلك. تضيف الطريقة createEntries جميع الملفات والمجلدات من الدليل إلى الأرشيف، الحفاظ على بنية الدليل. وأخيرًا، يقوم التابع save بكتابة محتويات الأرشيف في الملف "archive.tar".
عينة:

    try (TarArchive archive = new TarArchive()) {
        archive.createEntries("D:\\Data");
        archive.save("archive.tar");
    }

يقوم الكود المقدم بإنشاء أرشيف TAR باسم "archive.tar" يحتوي على إدخالين. أرشيف الدليل - يقوم بإضافة جميع الملفات والمجلدات من الدليل "D:/Data" إلى الأرشيف، مع الحفاظ على بنية الدليل. يؤدي هذا بشكل فعال إلى أرشفة محتويات الدليل المحدد بالكامل. وإدخال ملف واحد - يضيف ملفًا محددًا يسمى "data.bin" من المجلد الفرعي "الداخلي" إلى الأرشيف. يسمح هذا بتضمين ملف معين دون أرشفة بنية الدليل بأكملها. باختصار، يقوم هذا الكود بإنشاء أرشيف TAR يجمع بين الأرشفة على مستوى الدليل وتضمين الملفات الفردية.
النموذج 2 - دمج دليل الأرشفة و ملف واحد

    try (TarArchive archive = new TarArchive()) {
        archive.createEntries("D:\\Data");
        archive.createEntry("inner\\data.bin", "data.bin");
        archive.save("archive.tar");
    }

ميزات 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: