قم بفك ضغط الملفات في C#

في المشاركة السابقة ، تعلمت طرقًا مختلفة لضغط الملفات والمجلدات في أرشيفات ZIP باستخدام Aspose.ZIP for .NET. في هذا المنشور ، سأوضح لك كيفية استخراج أو فك ضغط ملفات ZIP في C#. سنغطي أيضًا كيفية استخراج أرشيفات ZIP المحمية بكلمة مرور أو AES المشفرة في C#. تنقسم هذه المقالة إلى الأقسام التالية:

C# API لفك ضغط الملفات المضغوطة - تنزيل مجاني

قبل أن نبدأ ، تأكد من تنزيل والإشارة إلى Aspose.ZIP لـ .NET أو تثبيت الحزمة الخاصة به باستخدام NuGet Package Manager في مشروعك.

قم بفك ضغط الملفات المضغوطة في C# .NET

يمكن تحقيق عملية فك ضغط ملفات ZIP بطريقتين:

  • قم بفك ضغط كل ملف في ZIP بشكل منفصل
  • قم بفك ضغط الملفات في مجلد محدد

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

استخراج كل ملف في ZIP في C#

فيما يلي خطوات الوصول إلى الملفات واستخراجها وطباعة تقدم الاستخراج في C#:

يوضح نموذج التعليمات البرمجية التالي كيفية استخراج الملفات في أرشيف مضغوط باستخدام C#.

// افتح ملف ZIP
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
	using (Archive archive = new Archive(zipFile, new ArchiveLoadOptions()))
	{
		// الوصول إلى كل إدخال في أرشيف ZIP
		for (int i = 0; i < archive.Entries.Count; i++)
		{
			int percentReady = 0;
			// تقدم استخراج السجل إلى وحدة التحكم.
			archive.Entries[i].ExtractionProgressed += (s, e) =>
			{
				int percent = (int)((100 * e.ProceededBytes) / ((ArchiveEntry)s).UncompressedSize);
				if (percent > percentReady)
				{
					Console.WriteLine(string.Format("{0}% decompressed", percent));
					percentReady = percent;
				}
			};
			// استخراج محتوى الإدخال إلى القرص.
			archive.Entries[i].Extract(archive.Entries[i].Name);
		}
	}
}

C# فك ضغط الملفات المضغوطة في مجلد

تُستخدم الخطوات التالية لفك ضغط ملفات ZIP إلى مجلد محدد في C#.

  • افتح أرشيف ZIP باستخدام فئة FileStream.
  • قم بإنشاء مثيل لفئة Archive وقم بتهيئته باستخدام كائن FileStream الخاص بـ ZIP.
  • قم بفك ضغط الملفات باستخدام طريقة Archive.ExtractToDirectory(string).

يقوم نموذج التعليمات البرمجية C# التالي بفك ضغط ملفات ZIP إلى مجلد.

// افتح ملف ZIP
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
	using (var archive = new Archive(zipFile))
	{
		// قم بفك ضغط الملفات إلى المجلد
		archive.ExtractToDirectory("Unzipped Files");
	}
}

C# استخراج ملفات مضغوطة محمية بكلمة مرور

يمكنك أيضًا فك ضغط أرشيف ZIP محمي بكلمة مرور باستخدام Aspose.ZIP لـ .NET. لهذا ، ما عليك سوى تحديد كلمة المرور باستخدام فئة ArchiveLoadOptions التي سيتم تمريرها كمعامل ثانٍ إلى مُنشئ الأرشيف.

ما يلي هو نموذج التعليمات البرمجية لفك ضغط ملف ZIP محمي بكلمة مرور.

// افتح ملف ZIP
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
	// فك التشفير باستخدام كلمة المرور
	using (var archive = new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
	{
    		// استخراج الملفات إلى المجلد
		archive.ExtractToDirectory("Unzipped Files");
	}
}

C# استخراج ملفات ZIP المشفرة AES

يمكن أيضًا تشفير أرشيف ZIP بتشفير AES. يدعم Aspose.ZIP for .NET تشفير الأرشيفات باستخدام طرق التشفير AES128 و AES192 و AES256. يشبه فك ضغط ملف ZIP مشفر AES فك ضغط ملفات ZIP المحمية بكلمة مرور. ما عليك سوى تحديد كلمة مرور فك التشفير باستخدام فئة ArchiveLoadOptions وستتكفل واجهة برمجة التطبيقات بالباقي.

يوضح نموذج التعليمات البرمجية التالي كيفية فك ضغط ملفات ZIP المشفرة AES في C#.

// افتح ملف ZIP
using (FileStream zipFile = File.Open("encrypted.zip", FileMode.Open))
{
  	// فك تشفير واستخراج المجلد
	new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }).ExtractToDirectory("decrypted");
}

مكتبة C# Unzip - احصل على ترخيص API مجاني

يمكنك استخدام Aspose.ZIP for .NET بدون قيود تقييمية عن طريق الحصول على ترخيص مجاني مؤقت.

استنتاج

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

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