Tuesday, 3 October 2017

How to check if a file exists in Go?



Go's standard library does not have a function solely intended to check if a file exists or not (like Python's os.path.exists). What is the idiomatic way to do it?


Answer



To check if a file doesn't exist, equivalent to Python's if not os.path.exists(filename):




if _, err := os.Stat("/path/to/whatever"); os.IsNotExist(err) {
// path/to/whatever does not exist
}


To check if a file exists, equivalent to Python's if os.path.exists(filename):



Edited: per recent comments



if _, err := os.Stat("/path/to/whatever"); err == nil {

// path/to/whatever exists

} else if os.IsNotExist(err) {
// path/to/whatever does *not* exist

} else {
// Schrodinger: file may or may not exist. See err for details.

// Therefore, do *NOT* use !os.IsNotExist(err) to test for file existence



}

No comments:

Post a Comment

casting - Why wasn't Tobey Maguire in The Amazing Spider-Man? - Movies & TV

In the Spider-Man franchise, Tobey Maguire is an outstanding performer as a Spider-Man and also reprised his role in the sequels Spider-Man...