删除php中的空目录

时间:2018-01-28 12:18:53

标签: php file

如果我想删除空目录,我收到以下错误:

  

警告:rmdir():目录不为空

功能:

 if (is_dir($target)) {
            $files = glob($target . '*', GLOB_MARK); //GLOB_MARK adds a slash to directories returned

            foreach ($files as $file) {
                $this->delete_files($file);
            }

            rmdir($target);

        } elseif (is_file($target)) {
             unlink($target);
        } else {
            $this->logger->error("Could not delete the folder");

        }

当有文件时,它会在没有警告的情况下删除所有内容(也应该删除文件夹)

2 个答案:

答案 0 :(得分:2)

尝试这样的事情。

<?php
function delete_directory($target) {
         if (is_dir($target))
           $dir_handle = opendir($target);
     if (!$dir_handle)
          return false;
     while($file = readdir($dir_handle)) {
           if ($file != "." && $file != "..") {
                if (!is_dir($dirname."/".$file))
                     unlink($dirname."/".$file);
                else
                     delete_directory($target.'/'.$file);
           }
     }
     closedir($dir_handle);
     rmdir($target);
     return true;
}
?>

希望这有帮助。

答案 1 :(得分:2)

要么你能这样做。

function delTree($dir)
{
 $files = glob( $dir . '*', GLOB_MARK );
 foreach( $files as $file 
 {
  if( is_dir( $file ) )
   delTree( $file );
  else
   @unlink( $file );
 }

 if( is_dir($dir) ) rmdir( $dir );
};