我在oder中使用PHP以递归方式删除目录。 调用此函数时:
function deleteDir($dirPath) {
$files = glob($dirPath . '*', GLOB_MARK);
foreach ($files as $file) {
if (is_dir($file)) {
deleteDir($file);
} else {
unlink($file);
}
}
rmdir($dirPath);
}
使用此行:
deleteDir("dir_to_be_deleted_recursively/");
这里出错:
deleteDir($file);
(当函数检测到它试图删除的目录中的目录时,它会再次调用该函数,但对于该目录。)
这是我正在测试它的目录:
dir_to_be_deleted_recursively/
dir1/
subdir1/
file1.txt
subdir2/
file2.txt
subdir3/
file3.txt
注意:我没有收到错误,只是一个空白页。
答案 0 :(得分:0)
我已经找到了解决方案!
只需使用这段代码即可完美运行:
foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dirPath, FilesystemIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST) as $path) {
$path->isFile() ? unlink($path->getPathname()) : rmdir($path->getPathname());
}
rmdir($dirPath);