Go で新しいディレクトリを作成する
    
    Musfirah Waseem
    2023年6月20日
    
    Go
    Go Directory
    
 
Go にはディレクトリを作成する方法がたくさんありますが、そのうちの 1つが os.Mkdir です。 指定した名前と許可ビットを、新しく形成されたディレクトリに割り当てることができます。
os.MkdirAll は、欠落している親を含め、いくつかのディレクトリを再帰的に作成するのに役立ちます。
os.Mkdir と os.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 | 他の | 
共通の権限
- 0664: 所有者だけがファイルを読み書きできます。 一方、他のユーザーはファイルを読み取ることしかできません。
- 0600: 所有者のみがファイルの読み取りと書き込みを行うことができ、他の誰もアクセスできません。
- 0777: すべてのユーザーがファイルに完全にアクセスできます。
- 0755: 所有者のみがフル アクセス権を持ち、他のユーザーはファイルの表示と実行のみを行うことができます。
- 0666: すべてのファイル ユーザーへの読み取りおよび書き込みアクセス。
- 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つのコマンドで複数のディレクトリを作成する関数を作成すると便利です。 欠落している親ディレクトリは自動的に作成されるため、新しいディレクトリを作成するためのコードを記述する冗長性が回避されます。
        チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
    
著者: Musfirah Waseem
    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