gpt4 book ai didi

php - PHP的递归删除目录功能?

转载 作者:IT王子 更新时间:2023-10-29 01:19:43 25 4
gpt4 key购买 nike

我正在使用 PHP 移动图像子文件夹的内容

GalleryName/images/

到另一个文件夹。移动后,我需要删除 GalleryName 目录以及其中的所有其他内容

我知道除非目录为空,否则 rmdir() 将不起作用。我花了一段时间试图构建一个递归函数到 scandir() 从顶部开始,然后是 unlink() 如果它是一个文件和 scandir() 如果它是一个目录,那么 rmdir() 每个空目录我去。

到目前为止,它的工作并不完全正确,我开始思考 -- 这不是 PHP 应该能够完成的简单得离谱的功能吗? 删除目录?

那么我有什么遗漏吗?或者是否至少有一个经过验证的功能可供人们用于此操作?

任何帮助将不胜感激。

PS 比起 php.net 网站上的评论,我更信任你们所有人——那里有数百个功能,但我很想知道你们是否有人推荐其中一个。

最佳答案

这个呢?

function rmdir_recursive($dirPath){
if(!empty($dirPath) && is_dir($dirPath) ){
$dirObj= new RecursiveDirectoryIterator($dirPath, RecursiveDirectoryIterator::SKIP_DOTS); //upper dirs not included,otherwise DISASTER HAPPENS :)
$files = new RecursiveIteratorIterator($dirObj, RecursiveIteratorIterator::CHILD_FIRST);
foreach ($files as $path)
$path->isDir() && !$path->isLink() ? rmdir($path->getPathname()) : unlink($path->getPathname());
rmdir($dirPath);
return true;
}
return false;
}

关于php - PHP的递归删除目录功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1407338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com