最模板 - 外贸网站建设,外贸网站模板

最模板

当前位置: 首页 > 建站教程 > php教程 >

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

时间:2014-06-09 16:40来源: 作者: 点击:
在php中删除目录如果是空目录我们可直接使用rmdir来删除,但是要删除非空目录我们需要先删除最子级目录的文件然后再删除空目录,其实就是递归删除目录了. 循环删除目录和文件函数,代码如下

在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. }
(责任编辑:admin)
------分隔线----------------------------
栏目列表
推荐内容