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文件夹
 *$fu = new FileUtil(); 调用方法
 *$fu->copyFile('a/1/2/3', 'a/1/2/4');
 */
class FileUtil {
 
 /**
 * 建立文件夹
 *
 * @param string $aimUrl
 * @return viod
 */
 function createDir($aimUrl) {
     $aimUrl = str_replace('', '/', $aimUrl);
     $aimDir = '';
     $arr = explode('/', $aimUrl);
     $result = true;
     foreach ($arr as $str) {
         $aimDir .= $str . '/';
         if (!file_exists($aimDir)) {
             $result = mkdir($aimDir);
         }
     }
     return $result;
 }
 
 /**
 * 建立文件
 *
 * @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;
 }
 
}
 
?>

 

您可以选择一种方式赞助本站

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: