از حالت فشرده خارج کردن فایل ها در سی شارپ

در پست قبلی، روش‌های مختلف زیپ کردن فایل‌ها و پوشه‌ها را در آرشیو ZIP با استفاده از Aspose.ZIP for .NET آموخته‌اید. در این پست، من به شما نشان خواهم داد که چگونه فایل های ZIP را در C# استخراج یا از حالت فشرده خارج کنید. همچنین نحوه استخراج آرشیوهای ZIP رمزگذاری شده با رمز عبور یا AES در سی شارپ را توضیح خواهیم داد. این مقاله به بخش های زیر تقسیم می شود:

C# API برای باز کردن فایل‌های ZIP - دانلود رایگان

قبل از شروع، مطمئن شوید 5 را دانلود کرده اید و به Aspose.ZIP برای دات نت ارجاع داده اید یا بسته آن را با استفاده از NuGet Package Manager در پروژه خود نصب کرده اید.

فایل های ZIP را در C#.NET از حالت فشرده خارج کنید

فرآیند باز کردن فایل های ZIP را می توان از دو طریق انجام داد:

  • هر فایل را به صورت جداگانه در ZIP از حالت فشرده خارج کنید
  • فایل ها را در یک پوشه مشخص از حالت فشرده خارج کنید

در روش اول، شما می توانید به طور صریح به هر فایل موجود در آرشیو ZIP دسترسی پیدا کرده و از حالت فشرده خارج کنید. علاوه بر این، می توانید پیشرفت فرآیند استخراج را چاپ کنید. در حالی که روش دوم به سادگی فایل ها را در پوشه مشخص شده باز می کند.

استخراج هر فایل در ZIP در سی شارپ

مراحل زیر برای دسترسی و استخراج فایل ها و چاپ پیشرفت استخراج در سی شارپ آمده است:

  • بایگانی ZIP را در یک شی FileStream باز کنید.
  • نمونه Archive را با شی FileStream ایجاد و مقداردهی اولیه کنید.
  • با استفاده از مجموعه Archive.Entries به فایل‌های موجود در ZIP دسترسی پیدا کنید.
  • کنترل کننده رویداد ArchiveEntry.ExtractionProgressed را برای چاپ پیشرفت استخراج تنظیم کنید.
  • با استفاده از روش ArchiveEntry.Extract(string) فایل ها را استخراج/از حالت فشرده خارج کنید.

نمونه کد زیر نحوه استخراج فایل ها در یک آرشیو ZIP با استفاده از سی شارپ را نشان می دهد.

// فایل 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);
		}
	}
}

سی شارپ فایل های ZIP را در یک پوشه از حالت فشرده خارج کنید

مراحل زیر برای باز کردن فایل های ZIP در یک پوشه خاص در سی شارپ استفاده می شود.

  • بایگانی 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");
	}
}

سی شارپ فایل های ZIP محافظت شده با رمز عبور را استخراج کنید

همچنین می توانید بایگانی ZIP محافظت شده با رمز عبور را با استفاده از Aspose.ZIP برای دات نت از حالت فشرده خارج کنید. برای این کار، فقط باید رمز عبور را با استفاده از کلاس 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");
	}
}

سی شارپ فایل های ZIP رمزگذاری شده AES را استخراج کنید

بایگانی ZIP همچنین می تواند با رمزگذاری AES رمزگذاری شود. Aspose.ZIP for .NET از رمزگذاری آرشیوها با روش های رمزگذاری AES128، AES192 و AES256 پشتیبانی می کند. باز کردن یک فایل ZIP رمزگذاری شده AES شبیه به باز کردن فایل های ZIP محافظت شده با رمز عبور است. فقط رمز رمزگشایی را با استفاده از کلاس ArchiveLoadOptions مشخص کنید و بقیه توسط API مراقبت می شود.

نمونه کد زیر نحوه باز کردن فایل های ZIP رمزگذاری شده AES در سی شارپ را نشان می دهد.

// فایل ZIP را باز کنید
using (FileStream zipFile = File.Open("encrypted.zip", FileMode.Open))
{
  	// رمزگشایی و استخراج در پوشه
	new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }).ExtractToDirectory("decrypted");
}

C# Unzip Library - یک مجوز API رایگان دریافت کنید

با دریافت [مجوز موقت رایگان] می توانید از Aspose.ZIP برای دات نت بدون محدودیت ارزیابی استفاده کنید.

نتیجه

در این مقاله یاد گرفتید که چگونه فایل های ZIP را با استفاده از سی شارپ از حالت فشرده خارج کنید. علاوه بر این، نحوه باز کردن فایل‌ها را در آرشیوهای ZIP محافظت شده با رمز عبور در C#.NET دیده‌اید. نمونه‌های کد همچنین نحوه استخراج فایل‌ها را در یک آرشیو ZIP رمزگذاری‌شده در سی شارپ نشان داده‌اند. با استفاده از اسناد می‌توانید درباره Aspose.ZIP برای دات‌نت بیشتر کاوش کنید.

مقالات مرتبط