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

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

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

在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. }
来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
栏目更新
栏目热门