PHP文件及文件夹操作之创建、删除、移动、复制
创建FileUtil.php文件,内容及调用方式如下:
<?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文件夹 */ classFileUtil{ /** *建立文件夹 * *@paramstring$aimUrl *@returnviod */ functioncreateDir($aimUrl){ $aimUrl=str_replace('','/',$aimUrl); $aimDir=''; $arr=explode('/',$aimUrl); $result=true; foreach($arras$str){ $aimDir.=$str.'/'; if(!file_exists($aimDir)){ $result=mkdir($aimDir); } } return$result; } /** *建立文件 * *@paramstring$aimUrl *@paramboolean$overWrite该参数控制是否覆盖原文件 *@returnboolean */ functioncreateFile($aimUrl,$overWrite=false){ if(file_exists($aimUrl)&&$overWrite==false){ returnfalse; }elseif(file_exists($aimUrl)&&$overWrite==true){ FileUtil::unlinkFile($aimUrl); } $aimDir=dirname($aimUrl); FileUtil::createDir($aimDir); touch($aimUrl); returntrue; } /** *移动文件夹 * *@paramstring$oldDir *@paramstring$aimDir *@paramboolean$overWrite该参数控制是否覆盖原文件 *@returnboolean */ functionmoveDir($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)){ returnfalse; } if(!file_exists($aimDir)){ FileUtil::createDir($aimDir); } @$dirHandle=opendir($oldDir); if(!$dirHandle){ returnfalse; } 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); returnrmdir($oldDir); } /** *移动文件 * *@paramstring$fileUrl *@paramstring$aimUrl *@paramboolean$overWrite该参数控制是否覆盖原文件 *@returnboolean */ functionmoveFile($fileUrl,$aimUrl,$overWrite=false){ if(!file_exists($fileUrl)){ returnfalse; } if(file_exists($aimUrl)&&$overWrite=false){ returnfalse; }elseif(file_exists($aimUrl)&&$overWrite=true){ FileUtil::unlinkFile($aimUrl); } $aimDir=dirname($aimUrl); FileUtil::createDir($aimDir); rename($fileUrl,$aimUrl); returntrue; } /** *删除文件夹 * *@paramstring$aimDir *@returnboolean */ functionunlinkDir($aimDir){ $aimDir=str_replace('','/',$aimDir); $aimDir=substr($aimDir,-1)=='/'?$aimDir:$aimDir.'/'; if(!is_dir($aimDir)){ returnfalse; } $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); returnrmdir($aimDir); } /** *删除文件 * *@paramstring$aimUrl *@returnboolean */ functionunlinkFile($aimUrl){ if(file_exists($aimUrl)){ unlink($aimUrl); returntrue; }else{ returnfalse; } } /** *复制文件夹 * *@paramstring$oldDir *@paramstring$aimDir *@paramboolean$overWrite该参数控制是否覆盖原文件 *@returnboolean */ functioncopyDir($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)){ returnfalse; } 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); } } returnclosedir($dirHandle); } /** *复制文件 * *@paramstring$fileUrl *@paramstring$aimUrl *@paramboolean$overWrite该参数控制是否覆盖原文件 *@returnboolean */ functioncopyFile($fileUrl,$aimUrl,$overWrite=false){ if(!file_exists($fileUrl)){ returnfalse; } if(file_exists($aimUrl)&&$overWrite==false){ returnfalse; }elseif(file_exists($aimUrl)&&$overWrite==true){ FileUtil::unlinkFile($aimUrl); } $aimDir=dirname($aimUrl); FileUtil::createDir($aimDir); copy($fileUrl,$aimUrl); returntrue; } } ?>
另一种调用方式:
$fu=newFileUtil(); $fu->copyFile('a/1/2/3','a/1/2/4');
以上所述是小编给大家介绍的PHP文件及文件夹操作之创建、删除、移动、复制,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!