diff --git a/os.go b/os.go index e8943c0c5..9dc81c579 100644 --- a/os.go +++ b/os.go @@ -3,6 +3,7 @@ package common import ( "bufio" "fmt" + "io" "io/ioutil" "os" "os/signal" @@ -44,6 +45,20 @@ func EnsureDir(dir string, mode os.FileMode) error { return nil } +func IsDirEmpty(name string) (bool, error) { + f, err := os.Open(name) + if err != nil { + return true, err //folder is non-existent + } + defer f.Close() + + _, err = f.Readdirnames(1) // Or f.Readdir(1) + if err == io.EOF { + return true, nil + } + return false, err // Either not empty or error, suits both cases +} + func FileExists(filePath string) bool { _, err := os.Stat(filePath) return !os.IsNotExist(err)