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文件及文件夹操作之创建、删除、移动、复制,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!