文件相关信息
可以用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