2015-07-06 113 views
-3

假設'Demo,hello.php,Chrysanthemum.jpg'是我想要刪除的目錄和文件的數組,其中demo是一個包含目錄和文件的目錄。以下代碼片段給了我這個錯誤。無法刪除在PHP目錄?

警告命令rmdir(演示):目錄用C不爲空:\ XAMPP \ htdocs中\ file.php上線32

請幫我調試這個問題。

<?php 
    $arr = explode(',' ,'Demo,hello.php,Chrysanthemum.jpg'); 
    $len = count($arr); 
    $i = 0; 
    $directory = array(); 
    /*while($i < $len){ 
     $arr[$i] = '../uploads/'.$arr[$i]; 
     $i++; 
    }*/ 
    while(count($arr) > 0){ 
     $dir = array_pop($arr); 
     if(is_dir($dir)){ 
      array_push($directory ,$dir); 
      $dh = opendir($dir); 
      while(($file = readdir($dh)) !== false){ 
       if($file != '.' && $file != '..'){ 
        if(is_dir($dir.'/'.$file)){ 
         array_push($arr ,$dir.'/'.$file); 
        } 
        else{ 
         unlink($dir.'/'.$file); 
        } 
       } 
      } 
     } 
     else{ 
      unlink($dir); 
     } 
    } 
    while($dir = array_pop($directory)){ 
     rmdir($dir); 
    } 

?> 
+2

_嘗試刪除由dirname命名的目錄。 **目錄必須爲空**,相關權限必須允許。 E_WARNING級別的錯誤將在失敗時生成._來自http://php.net/manual/en/function.rmdir.php。可能的重複:http://stackoverflow.com/questions/3349753/delete-directory-with-files-in-it – briosheje

+0

錯誤消息聽起來很清楚,我... – JJJ

+0

問題是,當我搜索'演示'文件夾的文件夾是空的,那麼爲什麼它給了我這個錯誤 – user3809584

回答

0

system("rm -rf ".escapeshellarg($dir));

System Manual

簡單的單線和執行速度非常快。它裏面的文件無關緊要

+0

'阿卜杜拉'謝謝你的回答,但我希望任何人都可以告訴我什麼是我的代碼有問題,這將有助於未來 – user3809584

+0

我無法弄清楚。多數民衆贊成我建議你這 –

+0

問題解決?? –