3 回答
TA贡献1817条经验 获得超14个赞
$dirname = 'C:/Users/Admin/Desktop/test';
array_map('unlink', glob("$dirname/*.*"));
rmdir($dirname);
试试这个,这会删除文件夹中存在的所有文件,还有那个文件夹
TA贡献1982条经验 获得超2个赞
目录可能包含其他目录,因此您必须使用递归函数。
function removeDir($path) {
$files = glob("$path/*");
foreach ($files as $file) {
if (is_dir($file)) {
removeDir($file);
} else {
unlink($file);
}
}
rmdir($path);
}
现在足以调用 removeDir("/my/nice/path"); 如果您看到该目录已经为空,请尝试检查隐藏文件并确保您具有正确的权限。
TA贡献1788条经验 获得超4个赞
我怀疑您已经检查过它不是文件权限问题。由于您的代码适用于我而不适用于您,这让我想知道它是否与 PHP 文件统计或真实路径缓存有关。
取消链接文件应自动清除单个文件的统计缓存。但是,以前已知PHP 错误会导致 rmdir 出现此问题。
尝试在 foreach 块中的 rmdir 语句之后执行clearstatcache。
以前我使用过 glob (在其他答案中提到过)所以我不知道 RecursiveDirectoryIterator 如何重新处理文件句柄;作为一个长期尝试,尝试unset($files);
unset($it)
在您的最终 rmdir 之前销毁这些对象 ( )。
- 3 回答
- 0 关注
- 121 浏览
添加回答
举报