كيف تُنشئ ملف مضغوط Zip في لغة جافا باستخدام Filesystem

7  تعليق

تستطيع أن تُنشئ ملفاً مضغوطاً باستخدام بعض الأسطر البرمجية باستخدام Filesystem.

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

قد تختصر لك كثيراً من الوقت بدلاً من إجراء عملية الضغط يدوياً. وفي هذه التدوينة ستتعرف على احدى طرق ضغط الملفات بلغة جافا.

تحدثت عن الصنف FileSystem في تدوينة كيف تقرأ من وتكتب في ملف نصي باستخدام [java.io] و [java.nio] أنصحك بالاطلاع عليها لتسهل عليك الأمور هنا.

خطوات إنشاء ملف مضغوط وضغط ملف

الخطوات منطقياً بسيطة ولكن يجب اتباعها بدقة.

(1) إنشاء الملف المضغوط Zip file

  1. إنشاء معرف موارد منتظم URI يتضمن صفات المخطط Scheme الخاص بالملفات المضغوطة Zip Files.
  2. إنشاء خريطة Map تتضمن الصفات الخاصة بإنشاء ملف مضغوط Zip File.
  3. استخدام ما أنشأته أعلاه في إنشاء كائن FileSystem، وهكذا تكون قد أنشأت ملفاً مضغوطاً.

(2) نقل الملف المراد ضغطه إلى داخل الملف المضغوط

  1. إنشاء مسار Path للملف المراد ضغطه.
  2. إنشاء مسار Path تخيلي لموقع الملف المراد ضغطه داخ الملف المضغوط Zip File.
  3. تنفيذ عملية النقل بين المسارين.

الشفرة المصدرية لإنشاء الملف المضغوط Zip file وضغط ملف

افترض معي الآتي:

  • تريد أن تُنشئ ملفاً مضغوطاً يسمى myZipFile.zip.
  • لديك ملف فيديو اسمه test.mp4 وتريد أن تضغطه داخل ملف myZipFile.zip ويكون اسمه newTest.mp4.
    
    try {
                
       //(1.1)
        URI zipURI;
        zipURI = new URI("jar:file", Paths.get("myZipFile.zip").toUri().getPath(), null);
    
        //(1.2)
        HashMap<String, String> properties = new HashMap<>();
        properties.put("create", "true");
        
        //(1.3)
        FileSystem fs = FileSystems.newFileSystem(zipURI, properties);
        
        //(2.1)
        Path toCompress = Paths.get("test.mp4");
        
        //(2.2)
        Path compressed = fs.getPath("/newTest.mp4");
        
        //(2.3)
        Files.copy(toCompress, compressed, StandardCopyOption.REPLACE_EXISTING);
    
        fs.close();
    
    } catch (Exception e) {
        System.out.println(e.getMessage());
    }

لا تنس استيراد المكتبات

import java.net.URI;
import java.nio.file.*;
import java.util.HashMap;

قبل تنفيذ الشفرة المصدرية تأكد من وجود الملف test.mp4 بداخل مجلد المشروع.

Filesystem
Filesystem

ختاماً إذا وجدت أن التدوينة مفيدة وعملية سيسعدني أن تشاركها مع أصدقائك.

كما يمكنك الاطلاع علي خوارزمية ضغط الملفات هوفمان (Huffman) للمزيد من المعرفة.


قد يعجبك أيضا

لماذا لغة جافا آمنة؟ كائن واحد يقدم جل المزايات الأمنية و الحماية لبرامج جافا

لماذا لغة جافا آمنة؟ كائن واحد يقدم جل المزايات الأمنية و الحماية لبرامج جافا
ما رأيك؟ اترك تعليقاً أدناه


  1. السلام عليكم ورحمة الله وبركاته
    جزاك لله خير و بوركت عمل جميل أسأل الله لك التوفيق و السداد
    إستمر

{"email":"البريد الالكتروني غير صحيح","url":"رابط الموقع غير صحيح","required":"بعض الحقول المطلوبة لم تتم تعبئتها"}

نجاح!

تنبيه!

خطأ!