VB.NET으로 파일 압축하고 해제하기

2023. 4. 16. 13:01VB.NET/왕초보

파일을 압축하는건 파일 크기를 줄이고 저장 공간을 확보하고 파일 전송 시간을 단축하는 효과가 있어서 유용합니다. 파일을 압축하려면 VB.NET에서 제공하는 System.IO.Compression 네임스페이스를 사용할 수 있습니다. 이 글에서는 VB.NET에서 파일 압축하는 방법에 대해서 자세하게 알아보겠습니다.

 

VB.NET으로 파일 압축하고 해제하기

System.IO.Compression 네임스페이스 소개

System.IO.Compression 네임스페이스는 .NET Framework에서 파일을 압축하고 해제할 수 있는 클래스를 제공합니다. 이 네임스페이스에서는 Zip 파일 포맷을 지원하는 ZipArchive 및 ZipFile 클래스를 제공합니다.

파일 압축하기

VB.NET에서 파일을 압축하기 위해서는 ZipFile.CreateFromDirectory 메서드를 사용합니다. 이 메서드는 지정된 디렉터리의 모든 파일을 압축 파일로 만듭니다. 아래는 ZipFile.CreateFromDirectory 메서드의 사용 예시입니다.

Dim startPath As String = "C:\example"
Dim zipPath As String = "C:\example.zip"
ZipFile.CreateFromDirectory(startPath, zipPath)

위 코드에서는 C:\example 디렉터리의 모든 파일을 C:\example.zip 파일로 압축합니다.

파일 압축 해제하기

VB.NET에서 압축된 파일을 해제하기 위해서는 ZipFile.ExtractToDirectory 메서드를 사용합니다. 이 메서드는 지정된 압축 파일을 특정 디렉터리에 해제합니다. 아래는 ZipFile.ExtractToDirectory 메서드의 사용 예시입니다.

Dim zipPath As String = "C:\example.zip"
Dim extractPath As String = "C:\example"
ZipFile.ExtractToDirectory(zipPath, extractPath)

위 코드에서는 C:\example.zip 파일을 C:\example 디렉터리에 해제합니다.

파일 추가하기

VB.NET에서 압축 파일에 파일을 추가하기 위해서는 ZipArchive 클래스를 사용합니다. 이 클래스의 CreateEntryFromFile 메서드를 사용하여 압축 파일에 파일을 추가할 수 있습니다. 아래는 ZipArchive 클래스의 CreateEntryFromFile 메서드의 사용 예시입니다.

Dim zipPath As String = "C:\example.zip"
Using archive As ZipArchive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
    Dim sourceFile As String = "C:\example.txt"
    Dim entryName As String = "example.txt"
    archive.CreateEntryFromFile(sourceFile, entryName)
End Using

위 코드에서는 C:\example.zip 파일에 C:\example.txt 파일을 추가합니다.

파일 삭제하기

VB.NET에서 압축 파일에서 파일을 삭제하기 위해서는 ZipArchive 클래스를 사용합니다. 이 클래스의 GetEntry 및 Delete 메서드를 사용하여 압축 파일에서 파일을 삭제할 수 있습니다. 아래는 ZipArchive 클래스의 GetEntry 및 Delete 메서드의 사용 예시입니다.

Dim zipPath As String = "C:\example.zip"
Using archive As ZipArchive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
   Dim entryName As String = "example.txt"
   Dim entryToDelete As ZipArchiveEntry = archive.GetEntry(entryName)
   entryToDelete.Delete()
End Using

위 코드에서는 C:\example.zip 파일에서 example.txt 파일을 삭제합니다.

6. 파일 업데이트하기

VB.NET에서 압축 파일에서 파일을 업데이트하기 위해서는 ZipArchive 클래스를 사용합니다. 이 클래스의 GetEntry 및 CreateEntryFromFile 메서드를 사용하여 압축 파일에서 파일을 업데이트할 수 있습니다. 아래는 ZipArchive 클래스의 GetEntry 및 CreateEntryFromFile 메서드의 사용 예시입니다.

Dim zipPath As String = "C:\example.zip"
Using archive As ZipArchive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
   Dim sourceFile As String = "C:\example_updated.txt"
   Dim entryName As String = "example.txt"
   Dim entryToUpdate As ZipArchiveEntry = archive.GetEntry(entryName)
   entryToUpdate.Delete()
   archive.CreateEntryFromFile(sourceFile, entryName)
End Using

위 코드에서는 C:\example.zip 파일에서 example.txt 파일을 삭제하고 C:\example_updated.txt 파일을 example.txt 파일로 업데이트합니다.

7. 파일 압축 레벨 설정하기

VB.NET에서 파일을 압축할 때 압축 레벨을 설정할 수 있습니다. 압축 레벨은 압축 파일의 크기와 압축 속도에 영향을 줍니다. 압축 레벨은 ZipFile.CompressionLevel 열거형으로 설정할 수 있습니다. 아래는 ZipFile.CreateFromDirectory 메서드에서 압축 레벨을 설정하는 방법의 예시입니다.

Dim startPath As String = "C:\example"
Dim zipPath As String = "C:\example.zip"
Dim compressionLevel As CompressionLevel = CompressionLevel.Optimal
ZipFile.CreateFromDirectory(startPath, zipPath, compressionLevel, False)

위 코드에서는 C:\example 디렉터리의 모든 파일을 C:\example.zip 파일로 Optimal 압축 레벨로 압축합니다.

마치며...

이 글에서는 VB.NET에서 파일을 압축하고 해제하는 방법에 대해서 알아보았습니다. 이를 통해 파일 크기를 줄이고 저장 공간을 확보하며 파일 전송 시간을 단축할 수 있습니다. 뿐만 아니라, 압축한 파일안에 다른 파일을 추가하거나 삭제하는 등의 업데이트 기능도 알아두면 도움이 많이 되는 기능이니 꼭 숙지하도록 연습하세요.

 

관련글 : 2023.04.12 - [VB.NET/왕초보] - VB.NET 정렬 알고리즘과 예제 코드

 

VB.NET 정렬 알고리즘과 예제 코드

VB.NET에서 정렬 알고리즘을 구현하는 방법은 매우 중요한 주제입니다. 이 글에서는 VB.NET에서 사용 가능한 몇 가지 대표적인 정렬 알고리즘에 대해 살펴보고, 각 알고리즘의 구현 방법과 성능에

chakhani.tistory.com

 

반응형