今天在写一个文件夹操作类,删除一个文件夹,包括多重文件夹,及子文件夹下还有多重文件夹。

 

  1. class dir{  
  2. function deldir($dir){  
  3.         if (is_dir($dir) == false)  
  4.         {  
  5.             exit("The Directory Is Not Exist!");  
  6.         }  
  7.         $dh = opendir($dir);  
  8.         while(false != ($file = readdir($dh))){  
  9.             if($file != '.' && $file != '..'){  
  10.                 is_dir($dir.DIRECTORY_SEPARATOR.$file) ?   
  11.                     $this -> deldir($dir.DIRECTORY_SEPARATOR.$file):  
  12.                     unlink($dir.DIRECTORY_SEPARATOR.$file);  
  13.             }  
  14.         }  
  15.         if(readdir($dh) == false){  
  16.             closedir($dh);  
  17.             @rmdir($dir);  
  18.         }  
  19.     }  

不过有一个问题没有解决,看了很多的方法,都差不多是这个方法,后来这个方法从ThinkPHP中截取的一部分,但是,这个方法是有问题的,(可能我弄错了??)

在多重文件夹下面,会出错,而且,删除不完,大概可能可以删除三重还是四重,比如/abc/a/b/c/d/e/f/g,如果是删除这个目录的话,可能最后还是会剩几个目录,比如/abc/a/b/c,于是,得再运行一下php脚本才可以继续,也就是要执行多次。。。。

希望有高手有更好的代码可以共享。