غير مصنف

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

تستطيع أن تُنشئ ملفاً مضغوطاً باستخدام بعض الأسطر البرمجية باستخدام 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

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

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




مصدر المقاله

روابط التقنية

اتمنى منكم المشاركة بالتعليق في حساباتي على شبكة التواصل الإجتماعي.

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى

أنت تستخدم إضافة Adblock

برجاء دعمنا عن طريق تعطيل إضافة Adblock