栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Golang 办公自动化--自动化管理文件和文件夹--创建文件夹

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Golang 办公自动化--自动化管理文件和文件夹--创建文件夹

自动化管理文件和文件夹 创建文件夹 普通创建文件夹

包名:os
原型:func Stat(name string) (fi FileInfo, err error)
作用:Stat 返回一个描述 name 指定的文件对象的 FileInfo。如果指定的文件对象是一个符号链接,返回的 FileInfo 描述该符号链接指向的文件的信息,本函数会尝试跳转该链接。如果出错,返回的错误值为 *PathError 类型。
返回:FileInfo、 error

包名:os
原型:func IsExist(err error) bool
作用:返回一个布尔值说明该错误是否表示一个文件或目录已经存在。ErrExist 和一些系统调用错误会使它返回真。
返回:bool

包名:os
原型:func IsNotExist(err error) bool
作用:返回一个布尔值说明该错误是否表示一个文件或目录不存在。ErrNotExist 和一些系统调用错误会使它返回真。
返回:bool

os.Mkdir
包名:os
原型:func Mkdir(name string, perm FileMode) error
作用:Mkdir 使用指定的权限和名称创建一个目录。如果出错,会返回 *PathError 底层类型的错误。
返回:error

os.FileMode
包名:os
原型:type FileMode uint32
作用:FileMode 代表文件的模式和权限位。这些字位在所有的操作系统都有相同的含义,因此文件的信息可以在不同的操作系统之间安全的移植。不是所有的位都能用于所有的系统,唯一共有的是用于表示目录的 ModeDir 位。

const (
    // 单字符是被String方法用于格式化的属性缩写。
    ModeDir        FileMode = 1 << (32 - 1 - iota) // d: 目录
    ModeAppend                                     // a: 只能写入,且只能写入到末尾
    ModeExclusive                                  // l: 用于执行
    ModeTemporary                                  // T: 临时文件(非备份文件)
    ModeSymlink                                    // L: 符号链接(不是快捷方式文件)
    ModeDevice                                     // D: 设备
    ModeNamedPipe                                  // p: 命名管道(FIFO)
    ModeSocket                                     // S: Unix域socket
    ModeSetuid                                     // u: 表示文件具有其创建者用户id权限
    ModeSetgid                                     // g: 表示文件具有其创建者组id的权限
    ModeCharDevice                                 // c: 字符设备,需已设置ModeDevice
    ModeSticky                                     // t: 只有root/创建者能删除/移动文件
    // 覆盖所有类型位(用于通过&获取类型位),对普通文件,所有这些位都不应被设置
    ModeType = ModeDir | ModeSymlink | ModeNamedPipe | ModeSocket | ModeDevice
    ModePerm FileMode = 0777 // 覆盖所有Unix权限位(用于通过&获取类型位)
)

这些被定义的位是 FileMode 最重要的位。另外9个不重要的位为标准 Unix rwxrwxrwx 权限(任何人都可读、写、运行)。这些(重要)位的值应被视为公共API的一部分,可能会用于线路协议或硬盘标识:它们不能被修改,但可以添加新的位。

示例:

package main

import (
    "fmt"
    "os"
)

func isExist(path string) bool {
    _, err := os.Stat(path)
    if err != nil {
        if os.IsExist(err) {
            return true
        }
        if os.IsNotExist(err) {
            return false
        }
        return false
    }
    return true
}

func main() {
    name := "./test"
    if isExist(name) {
        fmt.Printf("%s已存在!r", name)
    } else {
        fmt.Printf("%s不存在!r", name)
    }
    err := os.Mkdir(name, os.ModePerm)
    if err != nil {
        fmt.Println(err)
        return
    }
    if isExist(name) {
        fmt.Printf("%s已存在!r", name)
    } else {
        fmt.Printf("%s不存在!r", name)
    }
}

递归创建文件夹

包名:os
原型:func MkdirAll(path string, perm FileMode) error
作用:MkdirAll 使用指定的权限和名称创建一个目录,包括任何必要的上级目录,并返回 nil,否则返回错误。权限位 perm 会应用在每一个被本函数创建的目录上。如果 path 指定了一个已经存在的目录,MkdirAll 不做任何操作并返回 nil。
返回:error

示例:

package main

import (
    "fmt"
    "os"
)

func isExist(path string) bool {
    _, err := os.Stat(path)
    if err != nil {
        if os.IsExist(err) {
            return true
        }
        if os.IsNotExist(err) {
            return false
        }
        return false
    }
    return true
}

func main() {
    err := os.MkdirAll("./test/1/2", os.ModePerm)
    if err != nil {
        fmt.Println(err)
        return
    }
    dirs := []string{"./test/1", "./test/2", "./test/1.txt"}
    for _, v := range dirs {
        if isExist(v) {
            fmt.Printf("%s已存在!r", v)
        } else {
            fmt.Printf("%s不存在!r", v)
        }
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/728086.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号