好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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

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

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

function  delDirAndFile(  $dirName  )  {  if  (  $handle  = opendir( [ $dirName ] ) ) {  while  ( false !== (  $item  = readdir(  $handle  ) ) ) {  if  (  $item  != [.] &&  $item  != [..] ) {  if  (  is_dir ( [ $dirName / $item ] ) ) {  delDirAndFile( [ $dirName / $item ] );  }  else  {  if ( unlink( [ $dirName / $item ] ) ) echo  [成功删除文件:  $dirName / $item   n];  }  }  }  closedir (  $handle  );  if (  rmdir (  $dirName  ) ) echo  [成功删除目录:  $dirName   n];  }  }  ?> 

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

function  delFileUnderDir(  $dirName =]Smarty/templates/templates_c] )  {  if  (  $handle  = opendir( [ $dirName ] ) ) {  while  ( false !== (  $item  = readdir(  $handle  ) ) ) {  if  (  $item  != [.] &&  $item  != [..] ) {  if  (  is_dir ( [ $dirName / $item ] ) ) {  delFileUnderDir( [ $dirName / $item ] );  }  else  {  if ( unlink( [ $dirName / $item ] ) ) echo  [成功删除文件:  $dirName / $item   n];  }  }  }  closedir (  $handle  );  }  }  ?> 

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

function  my_del_dir( $directory )         {             if  ( is_dir ( $directory ) == false)            {                 exit ( "The Directory Is Not Exist!" );            }             $handle  = opendir( $directory );             while  (( $file  = readdir( $handle )) !== false)            {                 if  ( $file  !=  "."  &&  $file  !=  ".." )                {                     is_dir ( "$directory/$file" )?                    my_del_dir( "$directory/$file" ):                    unlink( "$directory/$file" );                }            }             if  (readdir( $handle ) == false)            {                 closedir ( $handle );                 rmdir ( $directory );            }        }        ?>  

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

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

function  DeleteDir( $sourceDir ){  $succeed  = true;  if ( file_exists ( $sourceDir )){  $objDir  = opendir( $sourceDir );  while (false !== ( $fileName  = readdir( $objDir ))){  if (( $fileName  != [.]) && ( $fileName  != [..])){  chmod ([ $sourceDir / $fileName ],0777);  if (! is_dir ([ $sourceDir / $fileName ])){  if (!unlink([ $sourceDir / $fileName ])){  $succeed  = false;  break ;  }  }  else {  DeleteDir([ $sourceDir / $fileName ]);  }  }  }  if (!readdir( $objDir )){  closedir ( $objDir );  if (! rmdir ( $sourceDir )){  $succeed  = false;  }  }  }  return   $succeed ;  }

查看更多关于php 删除非空目录自定义函数 - php函数的详细内容...

  阅读:39次