I've been reading and googling all over but I can't seem to find this simple answer.
I have a function that reads a file, but if the files doesn't exists it panics. What I want to do is a function that before reading, checks if the files exists, and if not, it creates an empty file. Here is what I have.
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
}
Don't try to check the existence first, since you then have a race if the file is created at the same time. You can open the file with the O_CREATE
flag to create it if it doesn't exist:
os.OpenFile(name, os.O_RDONLY|os.O_CREATE, 0666)