2013-11-04 233 views
0

我有一個關於我創建的函數的小問題。它應該刪除每個目錄和子目錄(當然還有其中的文件),但它絕對沒有任何東西!刪除目錄和子目錄

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

指定一種語言,它將幫助人們根據語言知識回答您的問題 – Roman

+0

我假設PHP,如果不是您的問題,請重新提問 – rene

+0

是的,很抱歉,它是PHP。感謝您的標籤。 – TheJailbreakBay

回答

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); 
} 

你可以找到更多的例子:http://us3.php.net/rmdir

問候。