2020/06/06
- ** 今日記憶 Package os.File**
package main
import (
"fmt"
"os"
"path/filepath"
)
func main() {
// 檔案資訊
fileInfo, err := os.Stat("/Users/aliliin/go_code/Learn-golang/file.txt")
if err != nil {
fmt.Println(err)
}
// 檔名
fmt.Println(fileInfo.Name()) // 檔名字
fmt.Println(fileInfo.Size()) // 檔案大小
fmt.Println(fileInfo.IsDir()) // 是否是目錄
fmt.Println(fileInfo.ModTime()) // 最後一次修改時間
fmt.Println(fileInfo.Mode()) // 檔案型別和許可權 -rw-r--r--
// 路徑查詢
filePath1 := "/Users/aliliin/go_code/Learn-golang/file.txt"
filePath2 := "file.txt"
//是否是絕對路徑
fmt.Println(filepath.IsAbs(filePath1)) //true
fmt.Println(filepath.IsAbs(filePath2)) // flse
// 獲取絕對路徑
fmt.Println(filepath.Abs(filePath1))
fmt.Println(filepath.Abs(filePath2)) // /Users/aliliin/go_code/Learn-golang/file.txt
// 獲取上一層目錄
fmt.Println(filepath.Join(filePath1, ".."))
// 建立檔案
// Create 採用模式是 0666(任何人可讀寫,不可執行)
// 如果檔案存在會(清空檔案原內容)
fileName, err := os.Create("/Users/aliliin/go_code/Learn-golang/file.txt")
if err != nil {
fmt.Println(err)
return
}
// 建立一層資料夾目錄 、建立多層資料夾 os.MkdirAll()
err := os.Mkdir("/Users/aliliin/go_code/Learn-golang/package/newdir", os.ModePerm)
if err != nil {
fmt.Println(err)
} else {
fmt.Println("資料夾建立成功")
}
// 開啟檔案
file3, err := os.Open(filePath1)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(file3)
// 寫檔案需要執行開啟檔案的格式
file4, err := os.OpenFile(filePath1, os.O_RDWR, os.ModePerm)
if err != nil {
fmt.Println(err)
}
fmt.Println(file4)
// 關閉檔案
fmt.Println(file4.Close())
// 刪除檔案和目錄 os.Remove("aa.txt")
// 遞迴刪除目錄 os.RemoveAll()
}
順便佛系一下用 go 做做 leetcode 的練習題同步到了 GitHub 大家也可以看看。
一步一個腳印,穩紮穩打,重新出發!從基本的 Golang Packages 記憶開始,堅持 ing!
本作品採用《CC 協議》,轉載必須註明作者和本文連結