跳至主要内容

[pkg] os

os @ golang

取得使用者在指令後輸入的參數:os.Args

$ go run main.go foo bar

若想取得 foo 和 bar 可以使用 os.Args 這個方法,預設 os.Args[0] 會是執行該 go 執行檔的路徑,而 os.Args[1] 之後可以取得對應的參數:

func main() {
fmt.Println(os.Args[0]) // /var/folders/.../main
fmt.Println(os.Args[1]) // foo
fmt.Println(os.Args[2]) // bar
}

判斷檔案是否存在:os.IsNotExist()

in, err := ioutil.ReadFile(fname)
if err != nil {
if os.IsNotExist(err) {
fmt.Println("File is not existed")
} else {
fmt.Println("Error reading file:", err)
}
}

終止程序 Exit:os.Exit

// 慣例上 code 為 0 表示程式執行成功後結束,0 以外的數字則表示程式因錯誤而結束
// func Exit(code int)

os.Exit(1)

移除檔案 Remove:os.Remove

移除指定的檔案或空資料夾:

// func Remove(name string) error

os.Remove("some-file")

取得執行 go run 指令的資料夾:os.Getwd

dir, err := os.Getwd()
if err != nil {
log.Fatal(err)
}
fmt.Println(dir)

儲存檔案:os.WriteFile

data := []byte("Hello Go")
err := os.WriteFile("example/foo.txt", data, 0644)
if err != nil {
panic(err)
}

參考