تنسيق أرشيف ZIP

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

حول معلومات الأرشيف المضغوط

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

معلومات محفوظات تنسيق ملف أرشيف مضغوط

تم نشر مواصفات التنسيق الأولى لـ ZIP في عام 1989. وكان مؤلفو فكرة ZIP هم فيل كاتز وغاري كونواي. لقد حقق نجاحًا فوريًا نظرًا لكفاءته في تقليل أحجام الملفات، مما يسهل تخزين الملفات ونقلها عبر اتصالات الإنترنت البطيئة وقدرات التخزين المحدودة في تلك الحقبة. منذ عام 1993 وهو يدعم طريقة ضغط الانكماش الأكثر شيوعًا. تم تقديم تشفير AES القوي في عام 2003. وعلى الرغم من كونه قديمًا جدًا، إلا أن المعيار لم يصبح أحفوريًا - بل يتم تطويره بنشاط في الوقت الحاضر. لذلك تم توسيعه في عام 2020 باستخدام طرق الضغط Zstandard وMP3 وXZ.

هيكل أرشيف ZIP

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

طرق ضغط الرمز البريدي

يسمح برنامج ZIP الحديث بضغط البيانات باستخدام خوارزميات Deflate وDeflate64™ وBZIP2 وLZMA وXZ وPPMd وZstandard. يمكن أيضًا تخزين الملف بدون ضغط. الأكثر شيوعًا هو Deflate، وهو الإعداد الافتراضي في أي أداة أرشيفية. هناك أيضًا خوارزميات للضغط بدون فقدان ملفات محددة: MP3، JPEG، WAV. يدعم Aspose.ZIP بشكل كامل أساليب Deflate وDeflate64™ وBzip2 وLZMA وXZ وPPMd وZstandard. يسمح باستخراج الصوت المضغوط WavPack.

عمليات الأرشفة المضغوطة المدعومة

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

ملف مضغوط - الهيكل الداخلي

كما قيل، يقع الدليل المركزي، وهو جدول المحتويات، في نهاية أرشيف ZIP. يعمل هذا الدليل بمثابة فهرس، حيث يسرد جميع إدخالات الملفات الموجودة في الأرشيف بالإضافة إلى مواقعها داخل الأرشيف. يمكن أن تتضمن رؤوس الإدخال أوقات الإنشاء والتعديل وسمات نظام الملفات واسم الملف والتعليق. يمكن توسيع رأس الإدخال بحقل إضافي مخصص لتخزين بيانات التعريف المخصصة. من الممكن تضمين رؤوس Zip64 لدعم أكثر من 65.535 إدخالًا لكل أرشيف. الحد الأقصى لحجم أرشيف ZIP بامتداد Zip64 هو 264−1 بايت. يمكن تقسيم أرشيف ZIP إلى عدة ملفات. في مثل هذه الحالة، يقوم الدليل المركزي بتخزين إزاحات كل مجلد للوصول السريع إلى إدخال معين.

ملف مضغوط - الهيكل الداخلي

شعبية الأرشيف المضغوط والدعم

ZIP هو تنسيق الأرشيف رقم واحد. يتم التعرف على أرشيفات ZIP ودعمها على نطاق واسع لدرجة أن تطبيقات البرامج المختلفة، بما في ذلك مديري الملفات المشهورين مثل Windows Explorer وmacOS Finder والأدوات مفتوحة المصدر مثل 7-Zip و WinRAR ، يوفران دعمًا أصليًا لإنشاء ملفات ZIP واستخراجها. يمتد هذا الدعم ليشمل خدمات التخزين السحابية وعملاء البريد الإلكتروني وحتى الأجهزة المحمولة.

أمثلة على استخدام الملفات المضغوطة

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

Create Zip file via .NET

Compose ZIP archive with two entries added by their paths.:

using (var archive = new Archive())
{
    archive.CreateEntry("entry_name1.dat", "input_file1.dat");
    archive.CreateEntry("entry_name2.dat", "input_file2.dat");
    archive.Save("result_archive.zip");
}

How to UnZIP files in C#

Steps: Unzip File to Folder in C#

  • Create an instance of Archive class based on your zip file.
  • Unzip the zip file using Archive.ExtractToDirectory method to your folder.
using (var archive = new Archive("input_archive.zip"))
{
    archive.ExtractToDirectory("outputDirectory");
}

Compressing Single File ZIP File

Steps: Compressing Single File in C#

  • Create a file stream with the desired name of your output zip file.
  • Create file stream of the data file to be compressed and encrypted.
  • Create an instance of Archive class and pass to it an instance of ArchiveEntrySettings class with AesEcryptionSettings instance, specifying the password.
  • Add data file created in step 2 using Archive.CreateEntry method.
  • Compress and encrypt the data file using Archive.Save method and pass it the file stream created in step 1.
using (var zipFile = File.Open("EncrypedWithAES256.zip", FileMode.Create))
{
    using (var source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
     {
           using (var archive = new Archive(new ArchiveEntrySettings(null, new  AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
           {
                  archive.CreateEntry("alice29.txt", source);
                  archive.Save(zipFile);
           }
      }
}

Deleting entries from existing archive

You do not have to repack whole archive when you only need to remove one entry from it. Steps:

  • Create a file stream with the desired name of your output zip file.
  • Create an instance of Archive class based on your zip file.
  • Delete the first file - the entry with zero index – from the archive.
  • Save the archive without excluded entry to output stream from step 1
using (FileStream outputZipFile = File.Open(withoutAnEntry.zip, FileMode.Create))
{
    using (Archive archive = new Archive(archive.zip))
    {
        archive.DeleteEntry(archive.Entries[0]);
        archive.Save(outputZipFile);
    }
}

معلومات إضافية حول أرشيفات Zip

لقد كان الناس يسألون

1. ما هو السبب الأكثر شيوعًا لضغط أرشيف مضغوط؟

السبب الأكثر شيوعًا لـ ضغط ملف Zip هو تقليل حجم الملف من أجل تخزين البيانات ونقلها وتنظيمها بكفاءة.

2. لماذا يسمى الرمز البريدي الأرشيف؟

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

3. هل يمكن للفيروس أن يصيب الرمز البريدي؟

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