Якщо ви шукаєте спосіб розпакувати архіви ZIP програмним шляхом, ця стаття дасть вам найпростіше рішення. Він продемонструє, як розпакувати архіви ZIP за допомогою C# за кілька простих кроків.

Розпакуйте ZIP-файли в C#

У попередній статті ви дізналися про різні способи створення ZIP-файлів і папок за допомогою Aspose.ZIP for .NET. У цій статті розповідається про те, як розпакувати ZIP-файли та розархівувати ZIP-архіви, захищені паролем або зашифровані AES, у C#.

Розпакуйте ZIP-архіви в C# - встановлення API

Перш ніж почати, переконайтеся, що ви завантажили і вказали Aspose.ZIP for .NET або встановили його пакет за допомогою NuGet Package Manager у вашому проекті.

PM> NuGet\Install-Package Aspose.Zip

Як розпакувати ZIP-файли в C#

Процес видобування ZIP-файлів можна здійснити двома способами:

  • Розпакуйте кожен файл у ZIP окремо
  • Розпакуйте файли у вказану папку

У першому методі ви можете явно отримати доступ до кожного файлу в ZIP-архіві та розпакувати його. Крім того, ви можете роздрукувати хід процесу вилучення. Тоді як другий метод просто витягує файли у вказану папку.

C# Розпакуйте кожен файл у ZIP

Нижче наведено кроки, щоб отримати доступ до ZIP-файлу та розпакувати його в C#, а також роздрукувати прогрес вилучення:

  • Відкрийте ZIP-архів в об’єкті FileStream.
  • Створіть та ініціалізуйте екземпляр Archive за допомогою об’єкта FileStream.
  • Отримайте доступ до файлів у архіві ZIP за допомогою колекції Archive.Entries.
  • Встановіть обробник події ArchiveEntry.ExtractionProgressed, щоб роздрукувати прогрес вилучення.
  • Розпакуйте файли за допомогою методу ArchiveEntry.Extract(string).

У наведеному нижче прикладі коду показано, як розпакувати файли в архіві ZIP на 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);
		}
	}
}

Розпакуйте ZIP-файли в папку в 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-файли

Ви також можете розархівувати ZIP-архів, захищений паролем, за допомогою Aspose.ZIP for .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");
	}
}

Розпакуйте зашифровані ZIP-файли AES у C#

Архів ZIP також можна зашифрувати за допомогою шифрування AES. Aspose.ZIP for .NET підтримує шифрування архівів за допомогою методів шифрування AES128, AES192 і AES256. Розархівація ZIP-файлу, зашифрованого AES, подібна до розархівування ZIP-файлів, захищених паролем. Просто вкажіть пароль розшифровки за допомогою класу ArchiveLoadOptions, а про все інше подбає API.

У наведеному нижче прикладі коду показано, як видобувати зашифровані AES файли ZIP у C#.

// Відкрийте файл ZIP
using (FileStream zipFile = File.Open("encrypted.zip", FileMode.Open))
{
  	// Розшифруйте та розпакуйте в папку
	new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }).ExtractToDirectory("decrypted");
}

C# ZIP Extraction API – отримайте безкоштовну ліцензію

Ви можете розпакувати ZIP-архіви без оціночних обмежень, отримавши безкоштовну тимчасову ліцензію.

Висновок

У цій статті ви дізналися, як розпакувати файли ZIP за допомогою C#. Крім того, ви бачили, як розпакувати захищені паролем архіви ZIP у C#. Зразки коду також продемонстрували, як видобувати файли в зашифрованому ZIP-архіві на C#. Ви можете дізнатися більше про Aspose.ZIP for .NET за допомогою документації.

Дивись також