[go] 파일 해제

파일을 압축 해제하는 작업은 Go 언어로 쉽게 수행할 수 있습니다. 이 포스트에서는 Go 언어를 사용하여 파일을 압축 해제하는 간단한 방법을 알아보겠습니다.

필요한 패키지 가져오기

먼저, archive/zip 패키지를 사용하여 파일을 압축 해제하는 예제를 살펴보겠습니다. 이를 위해 archive/zip 패키지를 가져와야 합니다.

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

파일 해제 함수 구현

다음으로, 압축 해제를 수행하는 함수를 구현합니다. 이 함수는 압축 파일의 경로를 입력받아 파일을 압축 해제합니다.

func extractFiles(zipFile string) error {
	reader, err := zip.OpenReader(zipFile)
	if err != nil {
		return err
	}
	defer reader.Close()

	for _, file := range reader.File {
		if file.FileInfo().IsDir() {
			os.MkdirAll(file.Name, os.ModePerm)
			continue
		}

		f, err := file.Open()
		if err != nil {
			return err
		}
		defer f.Close()

		targetFile, err := os.OpenFile(file.Name, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, file.Mode())
		if err != nil {
			return err
		}
		defer targetFile.Close()

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

위의 코드에서 extractFiles 함수는 주어진 ZIP 파일에서 파일을 추출하여 디렉터리를 만들고 파일을 복사하는 작업을 수행합니다.

파일 압축 해제

이제 extractFiles 함수를 사용하여 파일을 압축 해제할 수 있습니다.

func main() {
	zipFile := "example.zip"
	err := extractFiles(zipFile)
	if err != nil {
		log.Fatal(err)
	} else {
		log.Println("압축 해제가 완료되었습니다.")
	}
}

위의 main 함수에서는 example.zip 파일을 압축 해제하는 예시를 보여줍니다.

결론

Go 언어를 사용하여 파일을 압축 해제하는 방법을 살펴보았습니다. archive/zip 패키지를 사용하여 파일을 압축 해제하는 간단한 예제를 통해 파일 해제의 기본적인 개념을 이해할 수 있습니다.

참고 문헌:

기타 문의 사항이 있으시면 언제든지 문의해 주세요!