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 ,即所有用户可读写。

Categories:

Tags:

No responses yet

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注