好得很程序员自学网

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

php中创建多级目录与删除多级目录和文件 - php文

php中创建多级目录与删除多级目录和文件

在php中要实现简单的目录创建和删除分别利用mkdir和rmdir这有点像dos中的命令了,但如果我要创建多级目录或删除多级目录中的文件和目录则需要递归来实例了.

php中mkdir创建多级目录,代码如下:

function  mkdirs( $dir )    {   if (! is_dir ( $dir ))    {   if (!mkdirs(dirname( $dir )))  {   return  false;  }    if (! mkdir ( $dir ,0777))  {   return  false;  }  }     return  true;    }    //调用方法:mkdirs('div/css/layout');  

创建多级目录更标准的方法,代码如下:

//检查并创建多级目录        function  checkDir( $path ){           $pathArray  =  explode ( '/' , $path );           $nowPath  =  '' ;           array_pop ( $pathArray );           foreach  ( $pathArray   as   $key => $value ){               if  (  '' == $value  ){                  unset( $pathArray [ $key ]);              } else {                   if  (  $key  == 0 )                       $nowPath  .=  $value ;                   else                        $nowPath  .=  '/' . $value ;                   if  ( ! is_dir ( $nowPath ) ){                       if  ( ! mkdir ( $nowPath , 0777) )  return  false;                  }              }          }           return  true;      } 

删除多级目录方法

在winxp下测试成功,只要php文件编码为gb2312,文件名随意,应该把文件名改为编码为gb2312 就行,代码如下:

<?php   header( "Content-Type:text/html; charset=gb2312" );   if (deleteDir( './复件 复件 复件 复件 复件 复件 复件 复件 复件 复件 复件 aaa' ))   echo   "删除成功" ;   function  deleteDir( $dir )   {   if  (@ rmdir ( $dir )==false &&  is_dir ( $dir ))  //删除不了,进入删除所有文件    {   if  ( $dp  = opendir( $dir ))   {   while  (( $file =readdir( $dp )) != false)   {   if ( $file != '.'  &&  $file != '..' )   {  //echo $file=$dir.'/'.$file;echo '<br/>';    $file = $dir . '/' . $file ;   if  ( is_dir ( $file ))  //是真实目录    {   deleteDir( $file );   } else  {   unlink( $file );   }   }   }   closedir ( $dp );   } else    {   return  false;   }   }   if  ( is_dir ( $dir ) && @ rmdir ( $dir )==false)  //是目录删除不了    return  false;   return  true;   }   ?> 

递归删除多级目录

同样的思路,php用rmdir和unlink递归删除多级目录的代码:

function  rmdirs( $dir )    {    $d  = dir( $dir );    while  (false !== ( $child  =  $d ->read())){    if ( $child  !=  '.'  &&  $child  !=  '..' )  {    if ( is_dir ( $dir . '/' . $child ))    rmdirs( $dir . '/' . $child );    else    unlink( $dir . '/' . $child );  }    }    $d ->close();    //调用方法也很简单只要给目录就好     rmdir ( $dir );   } 

查看更多关于php中创建多级目录与删除多级目录和文件 - php文的详细内容...

  阅读:66次