C# .NET의 ZIP 아카이브에서 파일 삭제

.NET 애플리케이션 내에서 아카이브로 작업하는 동안 ZIP 내의 파일을 조작해야 할 수 있습니다. 이전 게시물에서 ZIP 아카이브에 파일/폴더를 추가하는 방법을 살펴보았습니다. 이 기사에서는 C#에서 프로그래밍 방식으로 ZIP 아카이브 내의 파일을 삭제하는 방법을 배웁니다. 시작하겠습니다.

ZIP 아카이브 내의 파일을 삭제하는 C# .NET API

Aspose.ZIP for .NET은 광범위한 보관 기능을 제공하는 강력한 API입니다. ZIP, TAR, 7z 및 GZip을 포함하여 널리 사용되는 형식의 아카이브를 만들고 조작할 수 있습니다. 이 API를 사용하여 ZIP 아카이브 내의 파일을 동적으로 삭제합니다. NuGet 또는 다운로드 DLL에서 API를 설치하고 수동으로 참조할 수 있습니다.

PM> Install-Package Aspose.Zip 

C#에서 ZIP 아카이브 내의 파일 삭제

.NET용 Aspose.ZIP을 사용하여 ZIP 아카이브 내의 파일을 삭제하는 방법에는 두 가지가 있습니다. 하나는 파일의 인덱스를 사용하고 다른 하나는 ArchiveEntry 클래스를 사용합니다. 앞서 언급한 두 가지 방법을 모두 사용하는 방법을 살펴보겠습니다.

ArchiveEntry를 사용하여 ZIP에서 파일 삭제

.NET용 Aspose.ZIP은 ZIP 내부의 각 파일/폴더를 ArchiveEntry 개체로 나타내며 모든 파일과 폴더는 ArchiveEntry 개체의 컬렉션을 만듭니다. 따라서 ZIP에서 파일을 삭제하려면 컬렉션에서 관련 ArchiveEntry 개체에 액세스하여 삭제할 수 있습니다. 다음은 C#의 ZIP 아카이브에서 파일을 삭제하는 단계입니다.

  • Archive 클래스를 사용하여 ZIP 아카이브를 로드합니다.
  • Archive.Entries 컬렉션의 항목을 반복합니다.
  • 원하는 파일/폴더를 필터링하고 목록에 추가합니다.
  • Archive.DeleteEntry(ArchvieEntry) 메서드를 사용하여 목록의 각 항목을 삭제합니다.
  • Archive.Save(string) 메서드를 사용하여 업데이트된 ZIP 아카이브를 저장합니다.

다음 코드 샘플은 C#에서 ZIP 아카이브 내의 파일을 삭제하는 방법을 보여줍니다.

// ZIP 아카이브 로드
using (var archive = new Archive("Archives/archive.zip"))
{
    // 삭제할 파일을 보관할 목록
    List<ArchiveEntry> entriesToDelete = new List<ArchiveEntry>();

    // ZIP 항목을 통해 루프
    foreach(ArchiveEntry entry in archive.Entries)
    {
        // 목록에 파일/폴더 추가
        if(entry.Name.ToLower().Contains("source"))
        {
            entriesToDelete.Add(entry);
        }
    } 

    // 나열된 모든 항목 삭제
    foreach(var entry in entriesToDelete)
    {
        archive.DeleteEntry(entry);
    }

    // 업데이트된 아카이브 저장
    archive.Save("Archives/updated-archive.zip");
}

색인을 사용하여 ZIP에서 파일 삭제

색인을 사용하여 ZIP 항목을 삭제할 수도 있습니다. 다음은 색인을 사용하여 ZIP 아카이브에서 파일/폴더를 제거하는 단계입니다.

  • Archive 클래스를 사용하여 ZIP 아카이브를 로드합니다.
  • Archive.DeleteEntry(int) 메소드에 index를 지정하여 파일을 삭제한다.
  • Archive.Save(string) 메서드를 사용하여 업데이트된 ZIP 아카이브를 저장합니다.

다음 C# 코드 샘플은 인덱스를 사용하여 ZIP 아카이브에서 파일을 제거하는 방법을 보여줍니다.

// ZIP 아카이브 로드
using (var archive = new Archive("Archives/archive.zip"))
{
    // 인덱스로 파일 삭제
    archive.DeleteEntry(0);

    // 업데이트된 아카이브 저장
    archive.Save("Archives/updated-archive.zip");
}

무료 API 라이선스 받기

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

결론

이 기사에서는 C#의 ZIP 아카이브에서 파일을 삭제하는 방법을 배웠습니다. 코드 샘플의 도움으로 ArchiveEntry 클래스 또는 인덱스를 사용하여 파일을 삭제하는 방법을 보았습니다. .NET용 Aspose.ZIP에 대해 자세히 알아보려면 문서를 방문하십시오. 또한 포럼을 통해 질문할 수 있습니다.

또한보십시오