diff --git a/compiler/main.v b/compiler/main.v index b3f2a5a2a0..3af33f1d91 100644 --- a/compiler/main.v +++ b/compiler/main.v @@ -516,8 +516,10 @@ mut args := '' fn (c &V) v_files_from_dir(dir string) []string { mut res := []string - if !os.dir_exists(dir) { + if !os.file_exists(dir) { panic('$dir doesn\'t exist') + } else if !os.dir_exists(dir) { + panic('$dir isn\'t a directory') } mut files := os.ls(dir) if c.is_verbose { diff --git a/os/os.v b/os/os.v index 36bd727d8e..8d0d77b5aa 100644 --- a/os/os.v +++ b/os/os.v @@ -332,13 +332,10 @@ pub fn file_exists(path string) bool { } pub fn dir_exists(path string) bool { - res := false - if file_exists(path) { - # DIR *dir = opendir(path.str); - # res = dir != NULL; - if res { - # closedir(dir); - } + dir := C.opendir(path.cstr()) + res := !isnil(dir) + if res { + C.closedir(dir) } return res }