[go] Go 언어의 경로를 이용한 파일 압축 해제

파일 압축을 해제하는 기능은 많은 소프트웨어에서 필요로 합니다. Go 언어를 사용하면 효율적이고 신속하게 파일을 압축 해제할 수 있습니다. 이번 포스팅에서는 Go 언어를 사용하여 파일 압축을 해제하는 방법에 대해 알아보겠습니다.

1. 압축 파일 경로 지정하기

첫 번째 단계는 압축 파일의 경로를 지정하는 것입니다. 다음 예제 코드는 압축 파일의 경로를 지정하는 방법을 보여줍니다.

package main

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

func main() {
	zipFilePath := "path/to/zipfile.zip"
	destDir := "path/to/destination/directory"
}

2. 파일 압축 해제하기

압축 파일의 경로를 지정한 후에는 이를 해제하는 과정을 수행해야 합니다. 아래 예제 코드는 Go 언어를 사용하여 파일을 압축 해제하는 방법을 보여줍니다.

func unzip(zipFilePath, destDir string) error {
	zipReader, err := zip.OpenReader(zipFilePath)
	if err != nil {
		return err
	}
	defer zipReader.Close()

	for _, file := range zipReader.File {
		fileReader, err := file.Open()
		if err != nil {
			return err
		}
		defer fileReader.Close()

		targetPath := filepath.Join(destDir, file.Name)

		if file.FileInfo().IsDir() {
			os.MkdirAll(targetPath, file.Mode())
		} else {
			targetFile, err := os.Create(targetPath)
			if err != nil {
				return err
			}
			defer targetFile.Close()

			_, err = io.Copy(targetFile, fileReader)
			if err != nil {
				return err
			}
		}
	}
	return nil
}

3. 압축 파일 해제 실행하기

이제 모든 준비가 되었으니 위에서 정의한 함수를 호출하여 압축 파일을 해제할 수 있습니다. 아래 예제 코드는 압축 파일을 해제하는 방법을 보여줍니다.

func main() {
	zipFilePath := "path/to/zipfile.zip"
	destDir := "path/to/destination/directory"
	err := unzip(zipFilePath, destDir)
	if err != nil {
		log.Fatal(err)
	}
}

이제 Go 언어로 파일 압축을 해제하는 방법에 대해 알아보았습니다. 이러한 방법을 사용하면 Go 언어를 활용하여 파일을 효율적으로 관리할 수 있습니다.

참고 자료