文件信息
可以用fileInfo這個API:
package main
import (
"fmt"
"os"
)
func main() {
fileInfo, err := os.Stat("/Users/liberhome/GolandProjects/awesomeProject/test/test.txt")
if err != nil {
fmt.Println("err: ", err)
return
}
// 文件類型
fmt.Printf("%T\n", fileInfo)
// 文件名
fmt.Println(fileInfo.Name())
// size
fmt.Println(fileInfo.Size())
// isdir
fmt.Println(fileInfo.IsDir())
// Mode
fmt.Println(fileInfo.Mode())
}
文件權限
權限的表示可以用符號 or 8進製表示
符號表示
第一個是類型,如果是文件 用-表示 目錄用d表示
後面三個分別代表當前應用具有的權限、當前應用所在的組、其他人的權限
權限一般分為3種:
r (可讀) w(可寫) x(可執行) 沒有哪一個權限就用-代替表示
-rwxr-xr-x
首先第一個-表明了這是一個文件
後面的rwx表明了這個文件擁有可讀可寫可執行的3個權限
後面的r-x表明了他所在的組的權限是可讀可執行不可寫
後面的r-x表明了其他人的權限是可讀可執行不可寫
其實更加常用的是用
數字表示
r( 可讀) 用004表示
w(可寫) 用002表示
x(可執行)用001表示
- 用000表示
比如0777 中的7就是4+2+1就是可讀可寫可執行
文件路徑
相對路徑與絕對路徑的API:filepath
filepath.IsAbs() : 判斷是否是絕對路徑
filepath.Abs(xxx): 得到文件xxx的絕對路徑
📢📢📢
os.ModePerm是一個常數 代表0777 也就是可讀可寫可執行
os.Mkdir可以創建最後一級文件夾
os.MkdirAll可以把到最後一級沒有出現過的文件夾全部創建出來
創建文件
默認採用0666 可讀寫不可執行權限
file1, err := os.Create("/Users/liberhome/GolandProjects/awesomeProject/test/test1.txt")
if err != nil {
fmt.Println(file1)
}
打開文件
Open 與 OpenFile的區別:open打開的文件是隻讀的,OpenFile可以在參數裏指定權限打開
關閉文件
file.Close()
刪除文件
os.remove("path")//刪除文件 or 空的文件夾
os.removeAll("path")//刪除文件 or 文件夾 [慎用,不會經過回收站]
參考資料來源:
bilibili