본문 바로가기
Golang

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

by 시바도지 2023. 3. 15.
반응형

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

댓글