• golang文件系统常用方法


    1. 判断文件/文件夹是否存在 + 获取文件大小等详细信息


    用2个函数可以判定,只是第一个函数将会返回所有内容,文件为0kb也是存在的

    1 读取文件内容

    2 能返回更多关于文件的信息

    package main
    
    import (
        "fmt"
        "io/ioutil"
        "os"
        "path/filepath"
        "strconv"
    )
    
    func main() {
        // 123转字符串后拼接为路径
        fmt.Println(filepath.Join("/proc", strconv.Itoa(123),"111"))
    
        _, err := ioutil.ReadFile("./tt.php")
        if err != nil {
            fmt.Println("ioutil.ReadFile",err)
        }
    
        _, err = os.Stat("./tt.php")
        if err != nil {
            fmt.Println("os.Stat",err)
        }
    }

    os.Stat

    package main
    
    import (
        "fmt"
        "os"
    )
    
    func main() {
        fileinfo, err := os.Stat(`C:UsersAdministratorDesktopUninstallTool.zip`)
        if err != nil {
            panic(err)
        }
        fmt.Println(fileinfo.Name())    //获取文件名
        fmt.Println(fileinfo.IsDir())   //判断是否是目录,返回bool类型
        fmt.Println(fileinfo.ModTime()) //获取文件修改时间
        fmt.Println(fileinfo.Mode())
        fmt.Println(fileinfo.Size()) //获取文件大小
        fmt.Println(fileinfo.Sys())
    }

     明显 os.Stat 还可以精准的判定文件夹是否存在

    2. 动态创建目录结构

    //CreateDateDir basePath是固定目录路径
    func CreateDateDir(basePath string) (dirPath, dataString string) {
        folderName := time.Now().Format("2006-01-02")
        folderPath := filepath.Join(basePath, folderName)
        if _, err := os.Stat(folderPath); os.IsNotExist(err) {
        // 必须分成两步
        // 先创建文件夹
        os.Mkdir(folderPath, 0777)
        // 再修改权限
        os.Chmod(folderPath, 0777)
        }
        return folderPath, folderName
    }
  • 相关阅读:
    每日日报2021.5.14
    每日日报2021.5.13
    每日日报2021.5.12
    每日日报2021.5.11 冲刺第十天
    《梦断代码》读后感3
    每日日报2021.5.10 冲刺第九天
    《梦断代码》读后感2
    每日日报2021 5/23
    每日日报2021 5/22
    每日日报2021 5/21
  • 原文地址:https://www.cnblogs.com/xuweiqiang/p/14008686.html
Copyright © 2020-2023  润新知