网站地图    收藏   

主页 > php专栏 > php函数大全 >

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

来源:自学PHP网    时间:2014-11-25 00:27 作者: 阅读:

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

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. }

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论