php文件处理类

<?php
/*操纵文件类
createDir()   建立文件夹
createFile()  建立文件
moveDir()     移动文件夹
moveFile()    移动文件
unlinkDir()   删除文件夹
unlinkFile()  删除文件
copyDir()     复制文件夹
copyFile()    复制文件
*/

class FileUtil {
/*建立文件夹,$aimUrl=文件夹路径+文件夹名称*/
function createDir($aimUrl) {
$aimUrl = str_replace(”, ‘/’, $aimUrl);
$aimDir = ”;
$arr = explode(‘/’, $aimUrl);
foreach ($arr as $str) {
$aimDir .= $str . ‘/';
if (!file_exists($aimDir))
{mkdir($aimDir);}
else
{echo “”;}
                        }
                              }

 

/* 建立文件 $overWrite=是否覆盖已存在的文件,ture为覆盖,false不覆盖*/

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);       //FileUtil::等同于$this->
touch($aimUrl);
return true;
}

 
/*移动文件夹 $oldDir为想要移动的目录,$aimDir为目标目录, $overWrite=是否覆盖已存在的文件,ture为覆盖,false不覆盖*/

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);
}
/*移动文件 $fileUrl为文件名称,$aimUrl为目标文件名称,$overWrite=是否覆盖已存在的文件,ture为覆盖,false不覆盖*/
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;
}

 

/*删除文件夹  $aimDir为要删除的文件夹*/
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);
}

 

/*删除文件 $aimUrl为要删除的文件*/

function unlinkFile($aimUrl)
{
if (file_exists($aimUrl))
{unlink($aimUrl);return true;}
else
{return false;}
}

 

/*复制文件夹  $oldDir为文件夹名称,$aimDir为目标文件夹名称,$overWrite=是否覆盖已存在的文件,ture为覆盖,false不覆盖*/
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);
}
/*复制文件 $fileUrl为文件名称,$aimUrl为目标文件名称,$overWrite=是否覆盖已存在的文件,ture为覆盖,false不覆盖*/

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;
}
}
?>

此条目发表在php与mysql参考分类目录,贴了标签。将固定链接加入收藏夹。

发表评论

邮箱地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>