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