一个PHP文件操作的类


<?
/* *
 * 操纵文件类
 * 
 * 例子:
 * FileUtil::createDir('a/1/2/3');                    测试建立文件夹    建一个a/1/2/3文件夹
 * FileUtil::createFile('b/1/2/3');                    测试建立文件        在b/1/2/文件夹下面建一个3文件
 * FileUtil::createFile('b/1/2/3.exe');                测试建立文件        在b/1/2/文件夹下面建一个3.exe文件
 * FileUtil::copyDir('b','d/e');                    测试复制文件夹    建立一个d/e文件夹,把b文件夹下的内容复制进去
 * FileUtil::copyFile('b/1/2/3.exe','b/b/3.exe');    测试复制文件        建立一个b/b文件夹,并把b/1/2文件夹中的3.exe文件复制进去
 * FileUtil::moveDir('a/','b/c');                    测试移动文件夹    建立一个b/c文件夹,并把a文件夹下的内容移动进去,并删除a文件夹
 * FileUtil::moveFile('b/1/2/3.exe','b/d/3.exe');    测试移动文件        建立一个b/d文件夹,并把b/1/2中的3.exe移动进去                    
 * FileUtil::unlinkFile('b/d/3.exe');                测试删除文件        删除b/d/3.exe文件
 * FileUtil::unlinkDir('d');                        测试删除文件夹    删除d文件夹
 
*/

class  FileUtil {
    
/* *
     * 建立文件夹
     *
     * @param    string $aimUrl
     * @return    viod
     
*/
    
function  createDir( $aimUrl ) {
        
$aimUrl   =   str_replace ( ' / ' ,   ' / ' ,   $aimUrl );
        
$aimDir   =   '' ;
        
$arr   =   explode ( ' / ' ,   $aimUrl );
        
foreach  ( $arr   as   $str ) {
            
$aimDir   .=   $str   .   ' / ' ;
            
if  ( ! file_exists ( $aimDir )) {
                
mkdir ( $aimDir );
            }
        }
    }

    
/* *
     * 建立文件
     *
     * @param    string    $aimUrl 
     * @param    boolean    $overWrite 该参数控制是否覆盖原文件
     * @return    boolean
     
*/
    
function  createFile( $aimUrl ,   $overWrite   =   false ) {
        
if  ( file_exists ( $aimUrl &&   $overWrite   ==   false ) {
            
return   false ;
        } 
elseif  ( file_exists ( $aimUrl &&   $overWrite   ==   true ) {
            FileUtil
:: unlinkFile( $aimUrl );
        }
        
$aimDir   =   dirname ( $aimUrl );
        FileUtil
:: createDir( $aimDir );
        
touch ( $aimUrl );
        
return   true ;
    }

    
/* *
     * 移动文件夹
     *
     * @param    string    $oldDir
     * @param    string    $aimDir
     * @param    boolean    $overWrite 该参数控制是否覆盖原文件
     * @return    boolean
     
*/
    
function  moveDir( $oldDir ,   $aimDir ,   $overWrite   =   false ) {
        
$aimDir   =   str_replace ( ' / ' ,   ' / ' ,   $aimDir );
        
$aimDir   =   substr ( $aimDir ,   - 1 ==   ' / '   ?   $aimDir   :   $aimDir   .   ' / ' ;
        
$oldDir   =   str_replace ( ' / ' ,   ' / ' ,   $oldDir );
        
$oldDir   =   substr ( $oldDir ,   - 1 ==   ' / '   ?   $oldDir   :   $oldDir   .   ' / ' ;
        
if  ( ! is_dir ( $oldDir )) {
            
return   false ;
        }
        
if  ( ! file_exists ( $aimDir )) {
            FileUtil
:: createDir( $aimDir );
        }
        @
$dirHandle   =   opendir ( $oldDir );
        
if  ( ! $dirHandle ) {
            
return   false ;
        }
        
while ( false   !==  ( $file   =   readdir ( $dirHandle ))) {
            
if  ( $file   ==   ' . '   ||   $file   ==   ' .. ' ) {
                
continue ;
            }
            
if  ( ! is_dir ( $oldDir . $file )) {
                FileUtil
:: moveFile( $oldDir   .   $file ,   $aimDir   .   $file ,   $overWrite );
            } 
else  {
                FileUtil
:: moveDir( $oldDir   .   $file ,   $aimDir   .   $file ,   $overWrite );
            }
        }
        
closedir ( $dirHandle );
        
return   rmdir ( $oldDir );
    }

    
/* *
     * 移动文件
     *
     * @param    string    $fileUrl
     * @param    string    $aimUrl
     * @param    boolean    $overWrite 该参数控制是否覆盖原文件
     * @return    boolean
     
*/
    
function  moveFile( $fileUrl ,   $aimUrl ,   $overWrite   =   false ) {
        
if  ( ! file_exists ( $fileUrl )) {
            
return   false ;
        }
        
if  ( file_exists ( $aimUrl &&   $overWrite   =   false ) {
            
return   false ;
        } 
elseif  ( file_exists ( $aimUrl &&   $overWrite   =   true ) {
            FileUtil
:: unlinkFile( $aimUrl );
        }
        
$aimDir   =   dirname ( $aimUrl );
        FileUtil
:: createDir( $aimDir );
        
rename ( $fileUrl ,   $aimUrl );
        
return   true ;
    }

    
/* *
     * 删除文件夹
     *
     * @param    string    $aimDir
     * @return    boolean
     
*/
    
function  unlinkDir( $aimDir ) {
        
$aimDir   =   str_replace ( ' / ' ,   ' / ' ,   $aimDir );
        
$aimDir   =   substr ( $aimDir ,   - 1 ==   ' / '   ?   $aimDir   :   $aimDir . ' / ' ;
        
if  ( ! is_dir ( $aimDir )) {
            
return   false ;
        }
        
$dirHandle   =   opendir ( $aimDir );
        
while ( false   !==  ( $file   =   readdir ( $dirHandle ))) {
            
if  ( $file   ==   ' . '   ||   $file   ==   ' .. ' ) {
                
continue ;
            }
            
if  ( ! is_dir ( $aimDir . $file )) {
                FileUtil
:: unlinkFile( $aimDir   .   $file );
            } 
else  {
                FileUtil
:: unlinkDir( $aimDir   .   $file );
            }
        }
        
closedir ( $dirHandle );
        
return   rmdir ( $aimDir );
    }

    
/* *
     * 删除文件
     *
     * @param    string    $aimUrl
     * @return    boolean
     
*/
    
function  unlinkFile( $aimUrl ) {
        
if  ( file_exists ( $aimUrl )) {
            
unlink ( $aimUrl );
            
return   true ;
        } 
else  {
            
return   false ;
        }
    }

    
/* *
     * 复制文件夹
     *
     * @param    string    $oldDir
     * @param    string    $aimDir
     * @param    boolean    $overWrite 该参数控制是否覆盖原文件
     * @return    boolean
     
*/
    
function  copyDir( $oldDir ,   $aimDir ,   $overWrite   =   false ) {
        
$aimDir   =   str_replace ( ' / ' ,   ' / ' ,   $aimDir );
        
$aimDir   =   substr ( $aimDir ,   - 1 ==   ' / '   ?   $aimDir   :   $aimDir . ' / ' ;
        
$oldDir   =   str_replace ( ' / ' ,   ' / ' ,   $oldDir );
        
$oldDir   =   substr ( $oldDir ,   - 1 ==   ' / '   ?   $oldDir   :   $oldDir . ' / ' ;
        
if  ( ! is_dir ( $oldDir )) {
            
return   false ;
        }
        
if  ( ! file_exists ( $aimDir )) {
            FileUtil
:: createDir( $aimDir );
        }
        
$dirHandle   =   opendir ( $oldDir );
        
while ( false   !==  ( $file   =   readdir ( $dirHandle ))) {
            
if  ( $file   ==   ' . '   ||   $file   ==   ' .. ' ) {
                
continue ;
            }
            
if  ( ! is_dir ( $oldDir   .   $file )) {
                FileUtil
:: copyFile( $oldDir   .   $file ,   $aimDir   .   $file ,   $overWrite );
            } 
else  {
                FileUtil
:: copyDir( $oldDir   .   $file ,   $aimDir   .   $file ,   $overWrite );
            }
        }
        
return   closedir ( $dirHandle );
    }

    
/* *
     * 复制文件
     *
     * @param    string    $fileUrl
     * @param    string    $aimUrl
     * @param    boolean    $overWrite 该参数控制是否覆盖原文件
     * @return    boolean
     
*/
    
function  copyFile( $fileUrl ,   $aimUrl ,   $overWrite   =   false ) {
        
if  ( ! file_exists ( $fileUrl )) {
            
return   false ;
        }
        
if  ( file_exists ( $aimUrl &&   $overWrite   ==   false ) {
            
return   false ;
        } 
elseif  ( file_exists ( $aimUrl &&   $overWrite   ==   true ) {
            FileUtil
:: unlinkFile( $aimUrl );
        }
        
$aimDir   =   dirname ( $aimUrl );
        FileUtil
:: createDir( $aimDir );
        
copy ( $fileUrl ,   $aimUrl );
        
return   true ;
    }
}
?>  

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值