1. MkdirAll 方法
函数签名
func MkdirAll(path string, perm FileMode) error
os.MkdirAll 用于递归创建多级目录的标准方法。可以将其理解为 Liunx 系统下 mkdir -p 命令的 Go 语言版本。作用是如果路径 path 中父目录不存在,它会自动把它们都创建出来;如果目录已经存在,它不会报错,而是直接返回成功。
path:要创建的目录路径(例如”a/b/c”)
perm:设置权限模式,并且权限会应用于所有新创建的目录。比如设置为固定值 0755,表示所有者可读写执行,组用户和其他用户可读执行。
而 os.Mkdir 方法如果父目录不存在会提示报错,只能创建最后一级目录。
在 Go 开发中,永远优先使用 os.MkdirAll,因为它是最安全、最健壮的。
2. Create 方法
函数签名
func Create(name string) (*File, error)
os.Create 方法用于创建新文件,然后返回一个文件句柄,对其可以写入数据。
参数 name 可以只设置为简单的 “文件名.txt” ,也可以写为包含目录的路径 “/目录名/文件名.txt”。但是需要注意的是 os.Create 方法不会自动创建父目录,如果目录不存在,该方法会报错,需要先用 os.MkdirAll(“目录名”, 0755) 创建目录才可以。
如果文件不存在,该方法会创建一个新文件。
如果文件已存在,该方法会清空该文件的内容,然后重新写入,导致原有数据丢失。
创建的文件权限默认为 0666 ,即所有用户可读写。

No responses yet