PHP删除目录/文件夹的三种方法


PHP #目录 #文件夹 #删除2012-05-18 09:39
1、递规法:利用递归一层一层的删。
01deleteDir($dir)
02{
03if (rmdir($dir)==false && is_dir($dir)) {
04 if ($dp = opendir($dir)) {
05  while (($file=readdir($dp)) != false) {
06   if (is_dir($file) && $file!='.' && $file!='..') {
07    deleteDir($file);
08   } else {
09    unlink($file);
10   }
11  }
12  closedir($dp);
13 } else {
14  exit('Not permission');
15 }
16
17}

2、系统调用法

1function del_dir($dir)
2{
3if(strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
4    $str = "rmdir /s/q " . $dir;
5} else {
6    $str = "rm -Rf " . $dir;
7}
8}

  3、循环法

01function deltree($pathdir
02
03echo $pathdir;//调试时用的 
04if(is_empty_dir($pathdir))//如果是空的 
05   
06   rmdir($pathdir);//直接删除 
07   
08   else 
09   {//否则读这个目录,除了.和..外 
10       $d=dir($pathdir); 
11       while($a=$d->read()) 
12       
13       if(is_file($pathdir.'/'.$a) && ($a!='.') && ($a!='..')){unlink($pathdir.'/'.$a);} 
14       //如果是文件就直接删除 
15       if(is_dir($pathdir.'/'.$a) && ($a!='.') && ($a!='..')) 
16       {//如果是目录 
17           if(!is_empty_dir($pathdir.'/'.$a))//是否为空 
18           {//如果不是,调用自身,不过是原来的路径+他下级的目录名 
19           deltree($pathdir.'/'.$a); 
20           
21           if(is_empty_dir($pathdir.'/'.$a)) 
22           {//如果是空就直接删除 
23           rmdir($pathdir.'/'.$a); 
24           
25       
26       
27       $d->close(); 
28   echo "必须先删除目录下的所有文件";//我调试时用的 
29   
30
31function is_empty_dir($pathdir
32{
33//判断目录是否为空
34$d=opendir($pathdir); 
35$i=0; 
36   while($a=readdir($d)) 
37   
38   $i++; 
39   
40closedir($d); 
41if($i>2){return false;} 
42else return true; 
43}
关于PHP目录操作和文件操作 请查看 http://yige.org/p/78

相关文章

粤ICP备11097351号-1