每日一个 Golang Packages 06/06 os File

2020/06/06

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 协议》,转载必须注明作者和本文链接
微信搜索:上帝喜爱笨人
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!