github.com/bobyang007/helper@v1.1.3/ioh/ioutilh/dir.go (about) 1 package ioutilh 2 3 import ( 4 "io" 5 "os" 6 "sort" 7 ) 8 9 // ReadDirNames reads the directory named by dirName and returns list of directory entries. 10 // Result slice will be sorted if arrange is set to true. 11 func ReadDirNames(dirName string, arrange bool) ([]string, error) { 12 f, err := os.Open(dirName) 13 if err != nil { 14 return nil, err 15 } 16 defer f.Close() 17 18 names, err := f.Readdirnames(-1) 19 if err != nil { 20 return nil, err 21 } 22 23 if arrange { 24 sort.Strings(names) 25 } 26 return names, nil 27 } 28 29 // IsDirEmpty checks if directory named by dirName is empty (has no child). 30 func IsDirEmpty(dirName string) (bool, error) { 31 f, err := os.Open(dirName) 32 if err != nil { 33 return false, err 34 } 35 defer f.Close() 36 37 _, err = f.Readdir(1) 38 if err == io.EOF { 39 return true, nil 40 } 41 return false, err 42 }