我一直在阅读和谷歌搜索,但似乎找不到这个简单的答案。
我有一个读取文件的功能,但是如果文件不存在,则会出现混乱。我想做的是一个函数,该函数在读取之前会检查文件是否存在,如果不存在,则会创建一个空文件。这就是我所拥有的。
func exists(path string) (bool, error) { _, err := os.Stat(path) if err == nil { return true, nil } if os.IsNotExist(err) { return false, nil } return true, err }
不要尝试先检查是否存在,因为如果同时创建了文件,那么您将面临一场竞赛。您可以打开带有O_CREATE标志的文件以创建该文件(如果不存在):
O_CREATE
os.OpenFile(name, os.O_RDONLY|os.O_CREATE, 0666)