Create ZIP in C#

مقدمة في أرشيفات ZIP

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

في هذه المقالة، سنستكشف طرقًا مختلفة لـ إنشاء أرشيفات ZIP برمجيًا في C#. ستتعلم كيفية:

مكتبة ZIP لـ C#

Aspose.ZIP for .NET هي واجهة برمجة تطبيقات قوية مصممة لضغط وفك ضغط الملفات والمجلدات داخل تطبيقات .NET. توفر ميزات مثل تشفير AES لتأمين ملفاتك داخل أرشيفات ZIP. يمكنك تثبيت واجهة برمجة التطبيقات بسهولة من NuGet أو تنزيل الملفات الثنائية من قسم التنزيلات.

إنشاء أرشيف ZIP في C#

لضغط ملف في أرشيف ZIP، اتبع الخطوات التالية:

  1. أنشئ كائن FileStream لأرشيف ZIP الناتج.
  2. افتح الملف المصدر باستخدام كائن FileStream.
  3. قم بإنشاء كائن من فئة Archive.
  4. أضف الملف إلى الأرشيف باستخدام طريقة Archive.CreateEntry(string, FileStream).
  5. احفظ أرشيف ZIP باستخدام طريقة Archive.Save(FileStream).

إليك نموذج كود يوضح كيفية إضافة ملف إلى أرشيف ZIP باستخدام C#:

إضافة ملفات متعددة إلى أرشيف ZIP في C#

لإضافة ملفات متعددة إلى أرشيف ZIP، يمكنك اختيار إحدى الطرق التالية:

باستخدام FileStream

استخدم فئة FileStream لإضافة ملفات متعددة إلى أرشيف ZIP باستخدام طريقة Archive.CreateEntry(String, FileStream). إليك كيف:

باستخدام FileInfo

بدلاً من ذلك، يمكنك استخدام فئة FileInfo لإضافة الملفات. تقوم هذه الطريقة بتحميل الملفات باستخدام فئة FileInfo وتضيفها إلى أرشيف ZIP باستخدام طريقة Archive.CreateEntry(String, FileInfo). انظر المثال أدناه:

باستخدام مسار الملف

يمكنك أيضًا إضافة الملفات مباشرة عن طريق توفير مساراتها إلى طريقة Archive.CreateEntry(String name, String path, Boolean openImmediately, ArchiveEntrySettings newEntrySettings). إليك كيف:

إضافة مجلدات إلى أرشيف ZIP في C#

يمكن أن يكون إضافة مجلد إلى أرشيف ZIP وسيلة ملائمة لتضمين ملفات متعددة. لضغط مجلد في C#، اتبع الخطوات التالية:

  1. أنشئ كائن FileStream لأرشيف ZIP الناتج.
  2. قم بإنشاء كائن من فئة Archive.
  3. استخدم فئة DirectoryInfo لتحديد المجلد الذي سيتم ضغطه.
  4. أضف المجلد إلى ZIP باستخدام طريقة Archive.CreateEntries(DirectoryInfo).
  5. احفظ أرشيف ZIP باستخدام طريقة Archive.Save(FileStream).

إليك نموذج كود يوضح كيفية إضافة مجلد إلى أرشيف ZIP في C#:

إنشاء ZIP محمي بكلمة مرور باستخدام ZipCrypto في C#

لزيادة الأمان، يمكنك إنشاء أرشيفات ZIP محمية بكلمة مرور باستخدام تشفير ZipCrypto. يتم تحقيق ذلك من خلال استخدام فئة ArchiveEntrySettings في مُنشئ Archive، مما يتيح لك تحديد نوع التشفير.

إليك مثال على كيفية إنشاء أرشيف ZIP محمي بكلمة مرور باستخدام ZipCrypto في C#:

إنشاء ZIP محمي بكلمة مرور مع تشفير AES

تدعم مكتبة Aspose.ZIP for .NET أيضًا تشفير AES لتأمين أرشيفات ZIP. يمكنك الاختيار من بين طرق تشفير AES التالية:

  • AES128
  • AES192
  • AES256

لتطبيق تشفير AES، استخدم فئة AesEcryptionSettings. إليك كيفية إنشاء ZIP محمي بكلمة مرور مع تشفير AES في C#:

تعيين وضع الضغط المتوازي

في الحالات التي تتضمن إدخالات متعددة، يمكنك تكوين واجهة برمجة التطبيقات للضغط المتوازي باستخدام فئة ParallelOptions. توفر Aspose.ZIP for .NET عدة أوضاع ضغط متوازي:

  • أبدًا - لا تضغط بشكل متوازي.
  • دائمًا - اضغط دائمًا بشكل متوازي (كن حذرًا من مشاكل نفاد الذاكرة).
  • تلقائي - قرر تلقائيًا ما إذا كان يجب استخدام الضغط المتوازي بناءً على الإدخالات.

إليك مثال يوضح كيفية تعيين وضع الضغط المتوازي أثناء ضغط ملفات متعددة:

تعرف على المزيد حول مكتبة ZIP لـ C# .NET

استكشف المزيد في واجهة برمجة تطبيقات ZIP الخاصة بنا باستخدام الموارد التالية:

جرب أرشيفات ZIP عبر الإنترنت

استكشف تطبيقنا المجاني عبر الإنترنت، المستند إلى Aspose.ZIP for .NET، لضغط الملفات بسهولة في أرشيفات ZIP.

الخاتمة

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

انظر أيضًا

فك ضغط أو استخراج الملفات باستخدام C#فك ضغط الملفات في أرشيفات ZIP باستخدام C#إنشاء أرشيفات 7z (7-Zip) في C# .NET
فتح أو استخراج ملف 7z (7zip) في C# .NETإنشاء واستخراج أرشيفات GZip باستخدام C#تحويل ملفات RAR إلى أرشيف ZIP في C#
تحويل أرشيفات ZIP إلى TAR في C#إنشاء أرشيف ZIP مسطح في C#إنشاء أرشيف ذاتي الاستخراج في C#
إنشاء ملفات TAR.GZ و TAR.XZ في C#حذف الملفات في أرشيف ZIP في C#استخراج أرشيفات ZIP المتداخلة في C#
دمج عدة أرشيفات ZIP أو TAR في C#كيفية إنشاء ملفات ZIPاستخراج 7z عبر الإنترنت