
ZIP 아카이브 작업 시, ZIP 파일이 다른 ZIP 파일을 포함하여 중첩 구조를 형성하는 상황을 자주 접하게 됩니다. 목표가 모든 내부 ZIP 아카이브를 외부 아카이브로 추출하여 이를 간소화하는 것이라면, 올바른 장소에 오셨습니다. 이 글에서는 강력한 Aspose.ZIP for .NET을 사용하여 C#에서 평면 ZIP 아카이브를 만드는 방법을 살펴보겠습니다.
목차
평면 ZIP 아카이브 생성을 위한 .NET API 개요
평면 ZIP 아카이브를 생성하기 위해 Aspose.ZIP for .NET 라이브러리를 사용할 것입니다. 이 강력한 아카이빙 API는 ZIP, TAR, GZip 및 7z를 포함한 다양한 아카이브 형식을 생성하고 추출할 수 있습니다. 이 라이브러리는 NuGet에서 쉽게 설치하거나 다운로드 섹션에서 DLL을 다운로드할 수 있습니다.
PM> Install-Package Aspose.Zip
C#에서 평면 ZIP 아카이브 생성 단계
평면 ZIP 아카이브의 구조를 더 잘 이해하기 위해 다음 예를 고려해 보십시오. 처음에는 다른 ZIP 아카이브를 포함하는 ZIP 아카이브가 있습니다:
parent.zip
├ first.txt
├ inner.zip
│ ├ game.exe
│ └ subitem.bin
└ picture.gif
이 ZIP 아카이브를 평면 구조로 변환한 후, 내부 ZIP의 모든 항목이 부모 ZIP으로 추출되어 다음과 같은 구조가 됩니다:
flatten.zip
├ first.txt
├ picture.gif
├ game.exe
└ subitem.bin
구현 단계
다음은 C#에서 프로그래밍적으로 평면 ZIP 아카이브를 만드는 방법입니다:
- 부모 ZIP 아카이브 로드: Archive 클래스를 사용하여 부모 ZIP을 로드합니다.
- 목록 초기화: 다음을 저장할 목록을 만듭니다:
- 부모 ZIP에서 삭제할 항목
- 추출된 항목 및 해당 이름
- 아카이브 항목 반복: Archive.Entries 컬렉션을 사용하여 부모 ZIP의 각 ArchiveEntry를 반복합니다.
- 각 항목 처리:
- 항목이 ZIP 아카이브인지 확인합니다:
ArchiveEntry.Name.EndsWith(".zip", StringComparison.InvariantCultureIgnoreCase)
를 사용합니다. - 그렇다면, 삭제할 항목 목록에 추가합니다.
ArchiveEntry.Open().CopyTo(MemoryStream)
를 사용하여 MemoryStream 객체로 항목을 엽니다.- 내부 ZIP 아카이브의 항목을 반복하며 다음 작업을 수행합니다:
- 각 항목의 이름을 추가할 항목 목록에 추가합니다.
ArchiveEntry.Open().CopyTo(MemoryStream)
를 사용하여 각 항목을MemoryStream
에 로드합니다.- 부모 ZIP에 추가할 항목 목록에 항목을 추가합니다.
- 항목이 ZIP 아카이브인지 확인합니다:
- 내부 ZIP 항목 삭제: 내부 ZIP 아카이브 목록을 반복하며 각 항목을 Archive.DeleteEntry(ArchiveEntry) 메서드를 사용하여 삭제합니다.
- 부모 ZIP에 새 항목 추가: 추가할 항목 목록을 반복하며 Archive.CreateEntry(String, Stream) 메서드를 사용하여 각 항목을 포함합니다.
- 부모 ZIP 아카이브 저장: 마지막으로, Archive.Save(String) 메서드를 사용하여 수정된 부모 ZIP 아카이브를 저장합니다.
다음은 C#에서 평면 ZIP 아카이브를 만드는 방법을 보여주는 코드 샘플입니다:
무료 API 라이선스 받기
제한 없이 Aspose.ZIP for .NET을 사용하기 위해 무료 임시 라이선스를 받을 수 있습니다.
결론
이 튜토리얼에서는 C#을 사용하여 효율적으로 평면 ZIP 아카이브를 만드는 방법을 배웠습니다. 우리는 내부 ZIP 아카이브를 부모 ZIP으로 추출하는 과정을 시연하여 중첩 폴더를 효과적으로 피했습니다. 추가 정보가 필요하면 Aspose.ZIP for .NET 문서를 확인하거나 포럼을 통해 문의해 주세요.
참고 자료
- C#에서 ZIP 아카이브에 파일 또는 폴더 추가하기
- C#을 사용하여 ZIP 아카이브에서 파일 압축 해제하기
- C#에서 여러 ZIP 또는 TAR 아카이브 병합하기
- C#에서 실행 가능한 자기 추출 아카이브 만들기
이 단계를 따르면 애플리케이션에서 C# 평면 ZIP 파일 압축을 쉽게 구현할 수 있으며, 효율적이고 관리하기 쉬운 단일 파일 ZIP 아카이브를 보장합니다. 이 접근 방식은 C# .NET에서 평면 ZIP을 만드는 가장 좋은 방법으로, 중첩 폴더를 피하면서 파일을 단일 ZIP으로 압축할 수 있습니다. 디렉토리의 모든 파일을 단일 ZIP으로 압축하려는 경우든 단순히 C#에서 평면 ZIP 파일을 만들고자 하는 경우든, 이 가이드는 성공적인 구현을 위한 모든 것을 제공합니다.