博客 / 詳情

返回

Golang file操作詳解

文件信息

可以用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

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.