[go] 파일 경로에서 파일 압축 해제하기

Go 언어를 사용하여 파일 경로에서 파일을 압축 해제하는 방법에 대해 알아보겠습니다.

1. archive/zip 패키지를 사용하여 파일 압축 해제하기

Go 언어의 내장 패키지 archive/zip은 파일 압축을 처리하는 데 사용됩니다. 아래는 archive/zip 패키지를 사용하여 파일을 압축 해제하는 간단한 예제 코드입니다.

package main

import (
    "archive/zip"
    "fmt"
    "os"
)

func main() {
    zipFilePath := "example.zip"
    targetDir := "extracted_files"

    r, err := zip.OpenReader(zipFilePath)
    if err != nil {
        panic(err)
    }
    defer r.Close()

    os.MkdirAll(targetDir, os.ModePerm)

    for _, f := range r.File {
        rc, err := f.Open()
        if err != nil {
            panic(err)
        }
        defer rc.Close()

        path := filepath.Join(targetDir, f.Name)
        if f.FileInfo().IsDir() {
            os.MkdirAll(path, os.ModePerm)
        } else {
            f, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE, os.ModePerm)
            if err != nil {
                panic(err)
            }
            defer f.Close()
            _, err = io.Copy(f, rc)
            if err != nil {
                panic(err)
            }
        }
    }

    fmt.Println("압축 해제가 완료되었습니다.")
}

위 코드는 example.zip 파일을 압축 해제하여 extracted_files 디렉토리에 파일들을 추출합니다.

2. 패키지 설치

archive/zip 패키지는 Go 언어의 표준 라이브러리로 기본적으로 제공되므로 별도의 설치가 필요하지 않습니다.

그러나 파일 시스템과 관련된 기능을 사용하기 위해 os 패키지와 파일 경로를 조작하기 위해 filepath 패키지를 사용했습니다. 이들 패키지도 Go의 표준 라이브러리로 포함되어 있습니다.

3. 요약

Go 언어를 사용하여 파일 경로에서 파일을 압축 해제하는 방법을 살펴봤습니다. 예제 코드와 내장 패키지를 이용하여 간단하게 파일을 압축 해제할 수 있습니다. 해당 기능을 활용하여 자신의 프로젝트에서 파일 압축을 해제해보세요.

또한, 실제 프로젝트에서는 에러 처리 및 예외 상황에 대한 처리가 필요하므로 주의하셔야 합니다.

내용참조: