os: fix rmdir_all panic with hidden dirs (#9271)
parent
e09a8a47b0
commit
fecf4a6f58
|
@ -142,9 +142,10 @@ pub fn rmdir_all(path string) ? {
|
|||
fullpath := join_path(path, item)
|
||||
if is_dir(fullpath) {
|
||||
rmdir_all(fullpath) or { ret_err = err.msg }
|
||||
}
|
||||
} else {
|
||||
rm(fullpath) or { ret_err = err.msg }
|
||||
}
|
||||
}
|
||||
rmdir(path) or { ret_err = err.msg }
|
||||
if ret_err.len > 0 {
|
||||
return error(ret_err)
|
||||
|
|
|
@ -399,6 +399,21 @@ fn test_join() {
|
|||
}
|
||||
}
|
||||
|
||||
fn test_rmdir_all() {
|
||||
mut dirs := ['some/dir', 'some/.hidden/directory']
|
||||
$if windows {
|
||||
for mut d in dirs {
|
||||
d = d.replace('/', '\\')
|
||||
}
|
||||
}
|
||||
for d in dirs {
|
||||
os.mkdir_all(d) or { panic(err) }
|
||||
assert os.is_dir(d)
|
||||
}
|
||||
os.rmdir_all('some') or { assert false }
|
||||
assert !os.exists('some')
|
||||
}
|
||||
|
||||
fn test_dir() {
|
||||
$if windows {
|
||||
assert os.dir('C:\\a\\b\\c') == 'C:\\a\\b'
|
||||
|
|
Loading…
Reference in New Issue