每日一个 Golang Packages 06/06 os File
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 协议》,转载必须注明作者和本文链接