[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 언어를 활용하여 파일을 효율적으로 관리할 수 있습니다.