diff --git a/file.go b/file.go index e7739e5..eeafa15 100644 --- a/file.go +++ b/file.go @@ -85,10 +85,12 @@ func (f FileFilters) apply(o *options) { } func splitDirAndName(path string) (dir, name string) { - path = filepath.Clean(path) - fi, err := os.Stat(path) - if err == nil && fi.IsDir() { - return path, "" + if path != "" { + path = filepath.Clean(path) + fi, err := os.Stat(path) + if err == nil && fi.IsDir() { + return path, "" + } } return filepath.Split(path) } diff --git a/file_windows.go b/file_windows.go index d14016e..db0360d 100644 --- a/file_windows.go +++ b/file_windows.go @@ -359,18 +359,16 @@ func browseForFolder(opts options) (string, []string, error) { } func initDirNameExt(filename string, name []uint16) (dir *uint16, ext *uint16) { - if filename != "" { - d, n := splitDirAndName(filename) - e := filepath.Ext(n) - if n != "" { - copy(name, syscall.StringToUTF16(n)) - } - if d != "" { - dir = syscall.StringToUTF16Ptr(d) - } - if e != "" { - ext = syscall.StringToUTF16Ptr(e[1:]) - } + d, n := splitDirAndName(filename) + e := filepath.Ext(n) + if n != "" { + copy(name, syscall.StringToUTF16(n)) + } + if d != "" { + dir = syscall.StringToUTF16Ptr(d) + } + if e != "" { + ext = syscall.StringToUTF16Ptr(e[1:]) } return }