php 删除非空目录自定义函数

在php中删除目录如果是空目录我们可直接使用rmdir来删除,但是要删除非空目录我们需要先删除最子级目录的文件然后再删除空目录,其实就是递归删除目录了.

循环删除目录和文件函数,代码如下:

  1. function delDirAndFile( $dirName ) 
  2. if ( $handle = opendir( “$dirName” ) ) { 
  3. while ( false !== ( $item = readdir( $handle ) ) ) { 
  4. if ( $item != “.” && $item != “..” ) { 
  5. if ( is_dir( “$dirName/$item” ) ) { 
  6. delDirAndFile( “$dirName/$item” ); 
  7. else { 
  8. if( unlink( “$dirName/$item” ) )echo “成功删除文件: $dirName/$item 
  9. n”; 
  10. closedir$handle ); 
  11. ifrmdir$dirName ) )echo “成功删除目录: $dirName 
  12. n”; 
  13. ?> 

循环目录下的所有文件,代码如下:

  1. function delFileUnderDir( $dirName=”../Smarty/templates/templates_c” ) 
  2. if ( $handle = opendir( “$dirName” ) ) { 
  3. while ( false !== ( $item = readdir( $handle ) ) ) { 
  4. if ( $item != “.” && $item != “..” ) { 
  5. if ( is_dir( “$dirName/$item” ) ) { 
  6. delFileUnderDir( “$dirName/$item” ); 
  7. else { 
  8. if( unlink( “$dirName/$item” ) )echo “成功删除文件: $dirName/$item 
  9. n”; 
  10. closedir$handle ); 
  11. ?> 

目录删除函数,代码如下:

  1. function my_del_dir($directory)  
  2.  
  3.     {   
  4.         if (is_dir($directory) == false)   
  5.         {   
  6.             exit("The Directory Is Not Exist!");   
  7.         }   
  8.         $handle = opendir($directory);   
  9.         while (($file = readdir($handle)) !== false)   
  10.         {   
  11.             if ($file != "." && $file != "..")   
  12.             {   
  13.                 is_dir("$directory/$file")?   
  14.                 my_del_dir("$directory/$file"):   
  15.                 unlink("$directory/$file");   
  16.             }   
  17.         }   
  18.         if (readdir($handle) == false)   
  19.         {   
  20.             closedir($handle);   
  21.             rmdir($directory);   
  22.         }   
  23.     }   
  24.     ?>  

自己写的一个,$sourceDir 要删除的目录路径.

调用方法:DeleteDir(“images/abc”);删除abc目录,代码如下:

  1. function DeleteDir($sourceDir){ 
  2. $succeed = true; 
  3. if(file_exists($sourceDir)){ 
  4. $objDir = opendir($sourceDir); 
  5. while(false !== ($fileName = readdir($objDir))){ 
  6. if(($fileName != “.”) && ($fileName != “..”)){ 
  7. chmod(“$sourceDir/$fileName”,0777); 
  8. if(!is_dir(“$sourceDir/$fileName”)){ 
  9. if(!unlink(“$sourceDir/$fileName”)){ 
  10. $succeed = false; 
  11. break
  12. else
  13. DeleteDir(“$sourceDir/$fileName”); 
  14. if(!readdir($objDir)){ 
  15. closedir($objDir); 
  16. if(!rmdir($sourceDir)){ 
  17. $succeed = false; 
  18. return $succeed
  19. }
波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » php 删除非空目录自定义函数

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡