[Go] 파일 입출력 상대경로

프로그래밍/Go lang2020. 11. 6. 18:47

Go언어에서 파일 입출력에 대한 기본 내용은 아래의 글에 잘 정리된 것 같습니다.

 

www.linode.com/docs/guides/creating-reading-and-writing-files-in-go-a-tutorial/

 

err := os.MkdirAll("collected_data/20201106", 0755)
if err != nil {
    log.Fatal(err)
}

 

폴더 생성은 위와 같은 방식으로 하면 됩니다.

 

위 코드에서 MkdirAll이 사용됐는데 중간 폴더가 없으면 생성하기 위해 쓰였습니다.

 

제가 궁금했던 것은 폴더가 어느 경로에 만들어지냐 하는 것이었습니다.

간단한 테스트를 해보니.. go run 명령어를 입력한 경로 기준 상대경로로 위의 폴더가 생성되네요.

 

a/b 경로에서 위의 코드가 담긴 파일을 실행하면

a/b/collected_data/20201106 폴더가 생깁니다.

 

a/b/c 경로에서 위의 코드가 담긴 파일을 실행하면

a/b/c/collected_data/20201106 폴더가 생깁니다.

 

자료를 조금 더 찾아보니 파일 경로 표현할 때 아래의 방법이 좀 더 좋아 보이네요.

stackoverflow.com/a/34451620/7225691

 

import "path/filepath"
path := filepath.Join(someRootPath, someSubPath)

filepath.Join()함수를 사용하면 시스템 플랫폼에 맞는 separator를 자동으로 사용해준다고 합니다.

위에서 path를 만든 후 Mkdir() 등이 함수에서 사용하면 될 것 같아요.

작성자

Posted by 드리머즈

관련 글

댓글 영역