مكتبة جافا ZIP لإنشاء وإدارة أرشيف ZIP

مكتبة جافا مفتوحة المصدر تدعم إنشاء واستخراج وتعديل ملفات ZIP برمجياً. تدعم Unicode وتقسيم ودمج الأرشيفات عبر واجهة برمجة تطبيقات جافا.

في عالم برمجة Java، التعامل مع أرشيفات zip بكفاءة هو مطلب شائع. سواء كان ذلك لضغط الملفات للتخزين أو لنقل البيانات عبر الشبكات، يمكن لمكتبة موثوقة أن تُحدث فرقًا كبيرًا. إحدى الجواهر في نظام Java البيئي هي مكتبة Zip4j، أداة قوية للعمل مع ملفات zip. دعونا نستكشف ما يجعل Zip4j خيارًا مفضلاً للمطورين ونستعرض ميزاتها وفوائدها. تم تطويرها بواسطة Srikanth Lingala، تُبسّط Zip4j عمليات zip المعقدة، مقدمةً للمطورين طريقة سلسة للعمل مع الأرشيفات داخل تطبيقات Java الخاصة بهم.

Zip4j هي مكتبة جافا مفتوحة المصدر توفر واجهة سهلة الاستخدام لإنشاء ملفات zip واستخراجها وتعديلها برمجياً. توفر مكتبة Zip4j واجهة برمجة تطبيقات بسيطة تسمح لمطوري البرمجيات بأداء عمليات ملفات ZIP الشائعة بأقل قدر من الشيفرة. سواءً كان إنشاء ملف ZIP جديد، أو استخراج الملفات، أو تحديث أرشيف موجود، فإن التصميم البديهي للمكتبة يبسط عملية التنفيذ. تدعم المكتبة ملفات zip المحمية بكلمة مرور للقراءة/الكتابة وتدعم التدفقات بالإضافة إلى دعم تنسيق Zip64.

تثبت مكتبة Zip4j أنها أداة قيمة لمطوري جافا الذين يبحثون عن مكتبة موثوقة وسهلة الاستخدام لمعالجة ملفات ZIP. تدعم المكتبة مجموعة واسعة من طرق الضغط، بما في ذلك Deflate و Store و BZip2 وتشفير AES. تسمح هذه المرونة للمطورين باختيار طريقة الضغط التي تناسب متطلباتهم بأفضل شكل. سهولة استخدامها، وقدرات التشفير، ودعمها لمختلف الميزات تجعلها الخيار الأول للمشروعات التي تتضمن مهام الضغط وفك الضغط. مع استمرار مطوري البرمجيات في استكشاف طرق فعّالة للتعامل مع ملفات ZIP في جافا، تبرز Zip4j كحل قوي ومتعدد الاستخدامات.

Previous Next

البدء مع Zip4j

الطريقة الموصى بها لاستخدام Zip4j هي عبر مستودع Maven. يمكنك بسهولة استخدام واجهة برمجة تطبيقات Zip4j مباشرة في مشاريع Maven الخاصة بك مع إعدادات بسيطة.

اعتماد Maven لـ Jarchivelib

<dependency>
<groupId>net.lingala.zip4j</groupId>
<artifactId>zip4j </artifactId>
<version>2.11.5</version>
<type>jar</type> <dependency>

التثبيت عبر أمر Git

 git clone https://github.com/srikanth-lingala/zip4j.git 

يمكنك تنزيل المكتبة مباشرة من GitHub

إنشاء ملفات Zip باستخدام مكتبة Java

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

كيفية إنشاء أرشيف ZIP جديد وإضافة ملفات إليه عبر واجهة برمجة التطبيقات Java؟

import net.lingala.zip4j.ZipFile;
import net.lingala.zip4j.model.ZipParameters;

public class ZipCreationExample {

    public static void main(String[] args) {
        try {
            // Create a new ZipFile object
            ZipFile zipFile = new ZipFile("example.zip");

            // Specify parameters for the file to be added
            ZipParameters parameters = new ZipParameters();
            parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE); // Set compression method
            parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL); // Set compression level

            // Add a file to the ZIP archive
            zipFile.addFile("file.txt", parameters);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

استخراج الملفات من أرشيفات ZIP عبر Java

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

كيفية استخراج الملفات من أرشيف ZIP داخل تطبيقات Java؟

import net.lingala.zip4j.ZipFile;
import net.lingala.zip4j.model.ZipParameters;

public class ExtractionExample {

    public static void main(String[] args) {
        try {
            // Specify the path to the ZIP archive
            ZipFile zipFile = new ZipFile("example.zip");

            // Specify the destination directory for extraction
            zipFile.extractAll("extracted_files/");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

تقسيم ودمج الأرشيفات عبر Java

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

كيفية دمج ملفات ZIP في ملف ZIP واحد عبر واجهة برمجة التطبيقات Java؟


new ZipFile("split_zip_file.zip").mergeSplitFiles(new File("merged_zip_file.zip"));

تطبيق التشفير وحماية كلمة المرور

الأمان هو جانب حاسم في ضغط الملفات، وتتفوق Zip4j في هذا المجال. يمكن لمطوري البرمجيات بسهولة تشفير وحماية ملفات ZIP بكلمة مرور، مما يضمن بقاء البيانات الحساسة آمنة. تدعم المكتبة خوارزميات تشفير مختلفة، بما في ذلك AES (معيار التشفير المتقدم). تمكن Zip4j المطورين من تشفير ملفات ZIP باستخدام خوارزميات تشفير قوية وحمايتها بكلمات مرور كما هو موضح في مثال الشيفرة التالي.

كيفية تأمين البيانات عن طريق تشفير ملفات ZIP باستخدام واجهة برمجة التطبيقات Java؟


import net.lingala.zip4j.ZipFile;
import net.lingala.zip4j.model.ZipParameters;

public class EncryptionExample {

    public static void main(String[] args) {
        try {
            // Create a new ZipFile object
            ZipFile zipFile = new ZipFile("encrypted.zip");

            // Specify encryption parameters
            ZipParameters parameters = new ZipParameters();
            parameters.setEncryptFiles(true);
            parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES); // Use AES encryption
            parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256); // Set key strength
            parameters.setPassword("secretpassword"); // Set password

            // Add files to the ZIP archive with encryption
            zipFile.addFile("file.txt", parameters);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 عربي