Go 언어 zip 파일 해제 배워보기

오늘은 Go 언어 기본 패키지에 포함되있는 archive/zip을 이용하여 압축파일을 열어보려 합니다.

package main

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

우선 archive/zip을 이용해야 하므로 이 패키지를 가져오고, 문자열을 출력하기 위한 fmt와 파일 내용을 보기 위해 io, os도 가져옵니다.

func main() {
	r, _ := zip.OpenReader("./test.zip")
	defer r.Close()

zip의 OpenReader로 해당 경로의 파일을 오픈해주고, defer 키워드로 해당 작업이 끝날 때에 닫아줍니다.

	for _, f := range r.File {
        fmt.Printf("%s:\n", f.Name)

For문으로 각각의 파일들의 이름을 조회할 수 있습니다.

		rc, _ := f.Open()
		io.CopyN(os.Stdout, rc, 10000)
		defer rc.Close()
	}
}

파일을 열고 CopyN으로 원하는 바이트 만큼 읽어옵니다.

마지막으로 해당 작업이 끝나면 닫도록 defer 키워드로 예약을 해둡니다.

Written on October 15, 2018