ZIP에서 TGZ C#로

이 블로그 게시물에서는 C#을 사용하여 ZIP 파일을 TGZ(tar.gz) 형식으로 변환하는 방법을 살펴보겠습니다. ZIP에서 TGZ로 변환하는 것은 일반적인 작업이며, 특히 Unix 계열 시스템의 압축 파일을 다룰 때 그렇습니다. 다음 튜토리얼에는 단계별 설명과 시작하는 데 필요한 코드가 포함되어 있습니다.

왜 ZIP을 TGZ로 변환해야 하나요?

다음과 같은 다양한 이유로 ZIP 파일을 TGZ 형식으로 변환해야 할 수 있습니다.

  • 크로스 플랫폼 호환성: TGZ 파일은 일반적으로 Unix 기반 시스템(Linux, macOS)에서 사용되는 반면, ZIP 파일은 Windows에서 인기가 있습니다. ZIP을 TGZ로 변환하면 다양한 환경에서 압축 파일을 처리하기가 더 쉬워집니다.

  • 압축 이점: TGZ 파일은 일반적으로 ZIP에 비해 압축률이 더 뛰어나 저장 공간을 절약하고 전송 시간을 줄여줍니다.

  • 작업 자동화: C#에서 파일 형식 변환을 자동화하면 시간과 노력을 절약할 수 있으며, 특히 대량의 데이터를 처리하는 애플리케이션에서 그 효과가 큽니다.

ZIP to TGZ 변환기 - C# API 구성

다음 NuGet 명령을 Visual Studio IDE에서 실행하여 Conholdate.Total for .NET을 설치하여 ZIP을 TGZ로 변환할 수 있습니다.

PM> NuGet\Install-Package Conholdate.Total

C#에서 ZIP을 TGZ로 변환

다음 단계는 C#에서 ZIP을 TGZ로 변환하는 방법을 보여줍니다.

  • ZIP 파일 로드: Archive 클래스는 TGZ 형식으로 변환하려는 항목이 포함된 소스 ZIP 파일을 로드합니다.

  • TarArchive 생성: TGZ 파일의 콘텐츠를 준비하기 위해 TarArchive 객체를 생성합니다.

  • 항목 처리: ZIP 파일의 각 항목은 반복됩니다. 디렉토리가 아니면 해당 데이터를 MemoryStream으로 추출합니다.

  • TarArchive에 항목 추가: 유효한 항목마다 CreateEntry 메서드를 사용하여 메모리에 저장된 데이터와 함께 파일을 tarball에 추가합니다.

  • TGZ로 저장: SaveGzipped 메소드는 tarball을 압축하여 .tar.gz 파일로 저장하기 위해 호출됩니다.

다음 코드 조각은 C#에서 ZIP을 TGZ로 변환하는 과정을 보여줍니다.

using (Archive source = new Archive("source.zip"))
{
    using (Aspose.Zip.Tar.TarArchive tar = new Aspose.Zip.Tar.TarArchive())
    {
        foreach (ArchiveEntry entry in source.Entries)
        {
            if (!entry.IsDirectory)
            {
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);
                tar.CreateEntry(entry.Name, mem);
            }
        }

        tar.SaveGzipped("result.tar.gz");
    }
}

무료 평가 라이센스

환경에서 평가 제한 없이 ZIP 변환을 테스트하려면 무료 임시 라이센스를 요청할 수 있습니다.

결론

C#에서 ZIP을 TGZ로 변환하는 것은 압축 아카이브를 처리하는 간단한 프로세스입니다. 크로스 플랫폼 파일 공유를 다루든 파일 크기를 최적화하든 이 변환 프로세스는 매우 유용합니다. 제공된 코드 예제를 따르면 .NET 애플리케이션에서 ZIP을 TGZ로 변환하는 것을 자동화하여 압축 파일을 관리하는 데 있어 호환성과 효율성을 보장할 수 있습니다. 질문이 있으시면 forum으로 메일을 보내주세요.

자주 묻는 질문

Windows에서 TGZ 포맷이 지원되나요?

네, Unix 기반 시스템에서 더 일반적이지만 Windows에서도 TGZ 파일을 추출하여 생성할 수 있습니다.

TGZ 아카이브에 디렉토리를 포함할 수 있나요?

네, !entry.IsDirectory 검사를 제거하고 디렉토리를 적절히 처리함으로써 디렉토리를 포함하도록 코드를 수정할 수 있습니다.

ZIP 파일을 TGZ로 자동으로 변환하는 게 가능할까요?

네, 제공된 코드는 대규모 C# 애플리케이션에 통합하여 일괄 처리나 예약된 작업으로 자동 변환이 가능합니다.

또한 참조