欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

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

时间:2023-07-29
自动化管理文件和文件夹 创建文件夹 普通创建文件夹

包名: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 mainimport ( "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 mainimport ( "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) } }}

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。