C#에서 파일 압축 풀기

이전 post에서 Aspose.ZIP for .NET을 사용하여 ZIP 아카이브에 파일과 폴더를 압축하는 다양한 방법을 배웠습니다. 이 게시물에서는 C#를 사용하여 ZIP 아카이브에서 파일을 추출하거나 압축을 푸는 방법을 보여 드리겠습니다. 또한 암호로 보호되거나 AES로 암호화된 ZIP 아카이브를 프로그래밍 방식으로 추출하는 방법도 다룰 것입니다. 이 문서는 다음 섹션으로 나뉩니다.

파일 압축을 푸는 C# API

시작하기 전에 다운로드하고 .NET용 Aspose.ZIP을 참조하거나 프로젝트에서 NuGet 패키지 관리자를 사용하여 해당 패키지를 설치했는지 확인하십시오.

C#을 사용하여 ZIP 파일 압축 풀기

ZIP 파일의 압축을 푸는 프로세스는 두 가지 방법으로 수행할 수 있습니다.

  • 각 파일을 ZIP으로 개별적으로 압축을 풉니다.
  • 지정된 폴더에 파일 압축 풀기

첫 번째 방법에서는 ZIP 아카이브의 각 파일에 명시적으로 액세스하고 압축을 풀 수 있습니다. 또한 추출 프로세스의 진행 상황을 인쇄할 수 있습니다. 반면 두 번째 방법은 파일을 지정된 폴더에 압축 해제합니다.

아카이브의 각 파일을 별도로 추출

다음은 C#에서 파일에 액세스 및 추출하고 추출 진행률을 인쇄하는 단계입니다.

다음 코드 샘플은 C#을 사용하여 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);
		}
	}
}

폴더에 파일 추출

다음 단계는 C#의 특정 폴더에 파일을 추출하는 데 사용됩니다.

  • FileStream 클래스를 사용하여 ZIP 아카이브를 엽니다.
  • Archive 클래스의 인스턴스를 생성하고 ZIP의 FileStream 객체로 초기화합니다.
  • Archive.ExtractToDirectory(string) 메서드를 사용하여 파일의 압축을 풉니다.

다음 C# 코드 샘플은 파일을 폴더에 압축 해제합니다.

// ZIP 파일 열기
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
	using (var archive = new Archive(zipFile))
	{
		// 폴더에 파일 압축 풀기
		archive.ExtractToDirectory("Unzipped Files");
	}
}

C#에서 암호로 보호된 ZIP 파일 압축 풀기

.NET용 Aspose.ZIP을 사용하여 암호로 보호된 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");
	}
}

C#에서 AES 암호화된 ZIP 파일 추출

ZIP 아카이브는 AES 암호화로 암호화할 수도 있습니다. .NET용 Aspose.ZIP은 AES128, AES192 및 AES256 암호화 방법으로 아카이브 암호화를 지원합니다. AES 암호화 ZIP 파일의 압축을 푸는 것은 암호로 보호된 ZIP 파일의 압축을 푸는 것과 비슷합니다. ArchiveLoadOptions 클래스를 사용하여 암호 해독 암호를 지정하기만 하면 나머지는 API에서 처리합니다.

다음 코드 샘플은 C#에서 AES 암호화 ZIP 파일의 압축을 푸는 방법을 보여줍니다.

// ZIP 파일 열기
using (FileStream zipFile = File.Open("encrypted.zip", FileMode.Open))
{
  	// 암호 해독 및 폴더로 추출
	new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }).ExtractToDirectory("decrypted");
}

무료 API 라이선스 받기

무료 임시 라이선스를 얻으면 평가 제한 없이 Aspose.ZIP for .NET을 사용할 수 있습니다.

결론

이 기사에서는 C#을 사용하여 ZIP 파일의 압축을 푸는 방법을 배웠습니다. 또한 암호로 보호된 ZIP 아카이브에서 파일의 압축을 푸는 방법을 살펴보았습니다. 코드 샘플은 C#의 암호화된 ZIP 아카이브에서 파일을 추출하는 방법도 보여주었습니다. 문서를 사용하여 .NET용 Aspose.ZIP에 대해 자세히 알아볼 수 있습니다.

관련 기사