乐趣区

关于golang: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

退出移动版