关于我创建的功能,我有一个小问题。它应该删除每个目录和子目录(当然还有它中的文件),但它绝对没有!
function deletedirandfiles($data, $username){
//$data correspond au chemin clé, cad à images/users
$dir = opendir($data); // On définit le répertoire dans lequel on souhaite travailler.
while (false !== ($fichier = readdir($dir))) // On lit chaque fichier du répertoire dans la boucle.
{
if (($fichier == '.') OR ($fichier == '..') OR ($fichier == '.DS_Store') OR ($fichier != $username)){
// On ne fait rien pour ne pas les afficher
}
elseif (is_file($data.'/'.$fichier)){
unlink($data.'/'.$fichier);
}
elseif (is_dir($data.'/'.$fichier)){
$foldertoworkin = "$data/$fichier";
deletedirandfiles($foldertoworkin, $username); //On lance la recursivité en reappelant la fonction
rmdir($data.'/'.$fichier);
}
else{
}
}
closedir($dir);
}
在这种情况下:$ data =“images / users”和$ username =文件夹的名称。
知道为什么它不起作用?
答案 0 :(得分:0)
与隐藏文件一起使用的OS无关解决方案可以是:
public static function delTree($dir) {
$files = array_diff(scandir($dir), array('.','..'));
foreach ($files as $file) {
(is_dir("$dir/$file")) ? delTree("$dir/$file") : unlink("$dir/$file");
}
return rmdir($dir);
}
找到更多示例
问候。