Create ZIP in C#

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

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

ما ستتعلمه

في هذه المقالة، ستكتشف كيفية:

مكتبة C# ZIP

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

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

لـ إنشاء ملف ZIP برمجيًا في C#,، اتبع الخطوات التالية:

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

إليك عينة من الشيفرة توضح كيفية إضافة ملف إلى أرشيف ZIP بلغة C#:

using Aspose.Zip;
using Aspose.Zip.Saving;
// Create FileStream for output ZIP archive
using (FileStream zipFile = File.Open("compress_directory.zip", FileMode.Create))
{
	using (Archive archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128))))
	{
		// Add folder to archive
		DirectoryInfo corpus = new DirectoryInfo("CanterburyCorpus");
		archive.CreateEntries(corpus);
		// Create ZIP archive
		archive.Save(zipFile);
	}
}

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

عندما تحتاج إلى إضافة ملفات متعددة إلى ZIP archive,، يمكن اتخاذ عدة نهج. إليك الطرق التي يمكنك استخدامها مع C# لzip ملفات متعددة:

استخدام FileStream لإضافة ملفات متعددة

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

using Aspose.Zip;
using Aspose.Zip.Saving;
// Create FileStream for output ZIP archive
using (FileStream zipFile = File.Open("compress_directory.zip", FileMode.Create))
{
	using (Archive archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128))))
	{
		// Add folder to archive
		DirectoryInfo corpus = new DirectoryInfo("CanterburyCorpus");
		archive.CreateEntries(corpus);
		// Create ZIP archive
		archive.Save(zipFile);
	}
}

استخدام 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 class.
  3. استخدم DirectoryInfo class لتحديد المجلد الذي تريد ضغطه.
  4. أضف المجلد إلى ZIP باستخدام Archive.CreateEntries(DirectoryInfo) method.
  5. احفظ أرشيف ZIP باستخدام the Archive.Save(FileStream) طريقة.

إليك عينة من الشيفرة توضح كيفية إضافة مجلد إلى ملف ZIP:

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

لتأمين أرشيفات ZIP الخاصة بك، يمكنك تطبيق حماية كلمة المرور باستخدام تشفير ZipCrypto. يتم ذلك عن طريق الاستفادة من ArchiveEntrySettings class في المُنشئ الخاص بـ الأرشيف,، التي تقبل نوع التشفير كمعامل. يمكنك استخدام C# Zip Archive Password طريقة لتطبيق ذلك بسهولة.

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

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

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

  • AES128
  • AES192
  • AES256

لتطبيق تشفير AES، استخدم AesEcryptionSettings class. أدناه عينة من الشيفرة توضح كيفية إنشاء ZIP محمي بكلمة مرور باستخدام تشفير AES في C#، بما في ذلك دعم C# كلمة مرور ملف Zip الميزة:

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

للتعامل الفعال مع عدة مدخلات، يمكنك تكوين الـ API للضغط المتوازي باستخدام ParallelOptions class. أوضاع الضغط المتوازي المتاحة هي:

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

إليك كيفية تعيين وضع الضغط المتوازي أثناء ضغط عدة ملفات باستخدام مكتبة Aspose C# ZIP:

using Aspose.Zip;
using Aspose.Zip.Saving;
// For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
string dataDir = "";
using (FileStream zipFile = File.Open(dataDir + "UsingParallelismToCompressFiles_out.zip", FileMode.Create))
{
    using (FileStream source1 = File.Open(dataDir + "alice29.txt", FileMode.Open, FileAccess.Read))
    {
        using (FileStream source2 = File.Open(dataDir + "asyoulik.txt", FileMode.Open, FileAccess.Read))
        {
            using (var archive = new Archive())
            {
                archive.CreateEntry("alice29.txt", source1);
                archive.CreateEntry("asyoulik.txt", source2);
                //Define the parallelism criterion
                var parallelOptions = new Aspose.Zip.Saving.ParallelOptions
                {
                    ParallelCompressInMemory = ParallelCompressionMode.Always
                };
                archive.Save(zipFile,
                    new ArchiveSaveOptions()
                    {
                        ParallelOptions = parallelOptions,
                        Encoding = Encoding.ASCII,
                        ArchiveComment = "There are two poems from Canterbury corpus"
                    });
            }
        }
    }
}

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

لتعمق فهمك لـ مكتبة C# .NET ZIP,، استكشف الموارد التالية:

جرّب أداة الضغط ZIP عبر الإنترنت الخاصة بنا

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

الخلاصة

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

انظر أيضًا

Unrar أو استخراج الملفات باستخدام 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 عبر الإنترنت

موارد إضافية

إذا كنت تبحث عن مزيد من المعلومات حول كيفية إنشاء ملفات ZIP في C#,، فكر في الاطلاع على:

دمج طرق مختلفة لـ إنشاء ملفات ZIP في C#,، مثل .NET Core Create ZIP File, C# إنشاء ملف ZIP برمجيًا,، و C# إضافة ملفات إلى ZIP,، يمكن أن يعزز بشكل كبير كفاءة تطويرك وقدرات معالجة البيانات.

يمكنك أيضًا استكشاف مثال ملف Zip C# لرؤية تنفيذ عملي لهذه الأساليب، مما سيعزز فهمك لكيفية ضغط ملفات في .NET باستخدام C#.

More in this category