Go で新しいディレクトリを作成する

Musfirah Waseem 2023年6月20日
  1. os.Mkdiros.MkdirAll の許可モード
  2. Go で os.Mkdir() メソッドを使用する
  3. Go で os.MkdirAll() メソッドを使用する
Go で新しいディレクトリを作成する

Go にはディレクトリを作成する方法がたくさんありますが、そのうちの 1つが os.Mkdir です。 指定した名前と許可ビットを、新しく形成されたディレクトリに割り当てることができます。

os.MkdirAll は、欠落している親を含め、いくつかのディレクトリを再帰的に作成するのに役立ちます。

os.Mkdiros.MkdirAll の許可モード

表記 8 進整数 機能性
rwx 7 読み取り、書き込み、実行
rw- 6 読み書き
r-x 5 読んで実行する
r-- 4 読む
-wx 3 書いて実行する
-w- 2 書く
--x 1 実行する
--- 0 権限なし

ユーザー アクセス

許可 8 進数 分野
rwx------ 0700 ユーザー
---rwx--- 0070 グループ
------rwx 0007 他の

共通の権限

  1. 0664: 所有者だけがファイルを読み書きできます。 一方、他のユーザーはファイルを読み取ることしかできません。
  2. 0600: 所有者のみがファイルの読み取りと書き込みを行うことができ、他の誰もアクセスできません。
  3. 0777: すべてのユーザーがファイルに完全にアクセスできます。
  4. 0755: 所有者のみがフル アクセス権を持ち、他のユーザーはファイルの表示と実行のみを行うことができます。
  5. 0666: すべてのファイル ユーザーへの読み取りおよび書き込みアクセス。
  6. 0750: ファイルの所有者はファイルの読み取り、書き込み、および実行ができますが、ユーザーは読み取りと実行しかできません。

Go で os.Mkdir() メソッドを使用する

package main

import (
	"log"
	"os"
	"fmt"
)

func main() {

	error := os.Mkdir("HomeDir", 0750)

	if error != nil && !os.IsExist(error) {

		log.Fatal(error)

	}

	fmt.Print("The directory has been created successfully.")

}

出力:

The directory has been created successfully.

上記のコードにより、新しいディレクトリを作成できます。 新しいディレクトリの作成中にエラーが発生した場合、そのタイプは PathError になります。

os.Mkdir 関数は単一のディレクトリのみを作成します。 この関数を使用してサブディレクトリを作成できます。

Go で os.MkdirAll() メソッドを使用する

package main

import (
	"log"

	"os"

	"fmt"
)

func main() {
	DirPath := "Desktop/Documents/MyDirectory"

	err := os.MkdirAll(DirPath, os.ModePerm)

	if err != nil {

		log.Println(err)

	}

	fmt.Print("The directory has been created successfully.")
}

出力:

The directory has been created successfully.

1つのコマンドで複数のディレクトリを作成する関数を作成すると便利です。 欠落している親ディレクトリは自動的に作成されるため、新しいディレクトリを作成するためのコードを記述する冗長性が回避されます。

著者: Musfirah Waseem
Musfirah Waseem avatar Musfirah Waseem avatar

Musfirah is a student of computer science from the best university in Pakistan. She has a knack for programming and everything related. She is a tech geek who loves to help people as much as possible.

LinkedIn