用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

php中创建多级目录与删除多级目录和文件

时间:2015-01-23  来源:西部数据  作者:西部数据

在php中要实现简单的目录创建和删除分别利用mkdir和rmdir这有点像dos中的命令了,但如果我要创建多级目录或删除多级目录中的文件和目录则需要递归来实例了.

php中mkdir创建多级目录,代码如下:

  1. function mkdirs($dir)   
  2. {  if(!is_dir($dir))   
  3. {  if(!mkdirs(dirname($dir))) 
  4. {  return false;  }   
  5. if(!mkdir($dir,0777)) 
  6. {  return false;  }  }  
  7.  return true;   
  8. }   
  9. //调用方法:mkdirs('div/css/layout'); 

创建多级目录更标准的方法,代码如下:

  1. //检查并创建多级目录 
  2.     function checkDir($path){ 
  3.         $pathArray = explode('/',$path); 
  4.         $nowPath = ''
  5.         array_pop($pathArray); 
  6.         foreach ($pathArray as $key=>$value){ 
  7.             if ( ''==$value ){ 
  8.                 unset($pathArray[$key]); 
  9.             }else
  10.                 if ( $key == 0 ) 
  11.                     $nowPath .= $value
  12.                 else 
  13.                     $nowPath .= '/'.$value
  14.                 if ( !is_dir($nowPath) ){ 
  15.                     if ( !mkdir($nowPath, 0777) ) return false; 
  16.                 } 
  17.             } 
  18.         } 
  19.         return true; 
  20.     } 

删除多级目录方法

在winxp下测试成功,只要php文件编码为gb2312,文件名随意,应该把文件名改为编码为gb2312 就行,代码如下:

  1. <?php  
  2. header("Content-Type:text/html; charset=gb2312");  
  3. if(deleteDir('./复件 复件 复件 复件 复件 复件 复件 复件 复件 复件 复件 aaa'))  
  4. echo "删除成功";  
  5. function deleteDir($dir)  
  6. {  
  7. if (@rmdir($dir)==false && is_dir($dir)) //删除不了,进入删除所有文件  
  8. {  
  9. if ($dp = opendir($dir))  
  10. {  
  11. while (($file=readdir($dp)) != false)  
  12. {  
  13. if($file!='.' && $file!='..')  
  14. //echo $file=$dir.'/'.$file;echo '<br/>';  
  15. $file=$dir.'/'.$file;  
  16. if (is_dir($file)) //是真实目录  
  17. {  
  18. deleteDir($file);  
  19. }else {  
  20. unlink($file);  
  21. }  
  22. }  
  23. }  
  24. closedir($dp);  
  25. }else  
  26. {  
  27. return false;  
  28. }  
  29. }  
  30. if (is_dir($dir) && @rmdir($dir)==false) //是目录删除不了  
  31. return false;  
  32. return true;  
  33. }  
  34. ?> 

递归删除多级目录

同样的思路,php用rmdir和unlink递归删除多级目录的代码:

  1. function rmdirs($dir)   
  2. {   
  3. $d = dir($dir);   
  4. while (false !== ($child = $d->read())){   
  5. if($child != '.' && $child != '..'
  6. {   
  7. if(is_dir($dir.'/'.$child))   
  8. rmdirs($dir.'/'.$child);   
  9. else  
  10. unlink($dir.'/'.$child);  }   
  11. }   
  12. $d->close(); 
  13.  
  14. //调用方法也很简单只要给目录就好   
  15. rmdir($dir);  
来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
栏目更新
栏目热门