Golang

Golang 디렉토리 생성(os.Mkdir, os.MkdirAll)

시바도지 2023. 3. 15. 10:57
반응형

Go에서 하나의 디렉토리를 생성할 때는 os.Mkdir() 함수를 사용한다.

만약 디렉토리의 계층(하위 디렉토리 생성)을 구분하여 생성하고 싶으면 os.MkdirAll() 함수를 사용한다.

두 함수는 디렉토리의 경로와 파일 시스템 권한을 인수로 넣어주어야 한다.

 

다음의 예제는 os.ModePerm 함수를 사용한다. 

os.ModePerm 함수는 파일 또는 디렉토리의 퍼미션 모드를 나타내는 상수이다.

이 함수는 파일 시스템에서 새로운 파일 또는 디렉토리를 만들 때 사용된다.

os.ModePerm 함수는 32비트의 부호 없는 정수형 상수값으로, 0777이라는 8진수 값과 동일하다.

이 값은 파일 또는 디렉토리의 퍼미션 모드를 의미한다.

참고로 0777은 사용자, 그룹, 기타 사용자 모두가 읽기, 쓰기, 실행 권한을 가진다는 것을 의미한다.

즉, 해당 파일이나 디렉토리는 모든 사용자가 읽고 쓰고 실행할 수 있다.

 

package main

import (
    "fmt"
    "os"
)

func main() {
    if err := os.Mkdir("test", os.ModePerm); err != nil {
        fmt.Println(err)
    }
}

 

os.Mkdir() 함수는 명시된("test") 디렉토리 명으로 생성한다.

하지만 하위 디렉토리를 생성하지 못하는데, 만약 "test" 대신에 "test/test1/test2" 이렇게 디렉토리 명을 준다면

오류가 발생한다.

 

만약 디렉토리 계층(하위 디렉토리 생성)을 구분하여 생성하고 싶다면 다음의 예제를 참고하면 된다.

 

package main

import (
    "fmt"
    "os"
 )

func main() {
    if err := os.MkdirAll("test/test1/test2", os.ModePerm); err != nil {
        fmt.Println(err)
    }
}

 

반응형

'Golang' 카테고리의 다른 글

Golang CSV를 JSON 변환  (0) 2023.03.15
Golang JSON을 CSV로 변환  (0) 2023.03.15
Golang sync.WaitGroup  (0) 2023.03.06
omitempty  (0) 2023.01.10
Golang 문자열 다루기 (strconv, strings)  (0) 2022.12.10