操纵文件类 FileUtil

122 阅读1分钟

操纵文件类 FileUtil

`<?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文件夹 */ class FileUtil {

    private static path;privatestaticpath; private static files = array(); private static $dirs = array();

    public function __construct(path="/") { try { if (is_dir(path)) { self::path=strtr(path = strtr(path, array('\' => '/')); } } catch (\Exception e) { echo e->getMessage(); } } /**

    • 建立文件夹
    • @param string $aimUrl
    • @return viod / public function createDir(aimUrl) { aimUrl = str_replace('', '/', aimUrl);aimUrl); aimDir = ''; arr=explode(/,arr = explode('/', aimUrl); result=true;foreach(result = true; foreach (arr as str) { aimDir .= str./;if(!fileexists(str . '/'; if (!file_exists(aimDir)) { result=mkdir(result = mkdir(aimDir,0777,true); } } return $result; } /*
    • 建立文件
    • @param string $aimUrl
    • @param boolean $overWrite 该参数控制是否覆盖原文件
    • @return boolean / public function createFile(aimUrl,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(aimUrl); FileUtil :: createDir(aimDir); touch($aimUrl); return true; } /*
    • 移动文件夹
    • @param string $oldDir
    • @param string $aimDir
    • @param boolean $overWrite 该参数控制是否覆盖原文件
    • @return boolean / public function moveDir(oldDir,oldDir, aimDir, overWrite = false) { aimDir = str_replace('', '/', aimDir);aimDir); aimDir = substr(aimDir,1)==/?aimDir, -1) == '/' ? aimDir : aimDir./;aimDir . '/'; oldDir = str_replace('', '/', oldDir);oldDir); oldDir = substr(oldDir,1)==/?oldDir, -1) == '/' ? oldDir : oldDir./;if(!isdir(oldDir . '/'; if (!is_dir(oldDir)) { return false; } if (!file_exists(aimDir)) { FileUtil :: createDir(aimDir); } @ dirHandle=opendir(dirHandle = opendir(oldDir); if (!dirHandle)returnfalse;while(false!==(dirHandle) { return false; } while (false !== (file = readdir(dirHandle))) { if (file == '.' || file==..)continue;if(!isdir(file == '..') { continue; } if (!is_dir(oldDir . file)) { FileUtil :: moveFile(oldDir . file,file, aimDir . file,file, overWrite); } else { FileUtil :: moveDir(oldDir.oldDir . file, aimDir.aimDir . file, overWrite); } } closedir(dirHandle); return rmdir($oldDir); } /*
    • 移动文件
    • @param string $fileUrl
    • @param string $aimUrl
    • @param boolean $overWrite 该参数控制是否覆盖原文件
    • @return boolean / public function moveFile(fileUrl,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(aimUrl); FileUtil :: createDir(aimDir); rename(fileUrl,fileUrl, aimUrl); return true; } /*
    • 删除文件夹
    • @param string $aimDir
    • @return boolean / public function unlinkDir(aimDir) { aimDir = str_replace('', '/', aimDir);aimDir); aimDir = substr(aimDir,1)==/?aimDir, -1) == '/' ? aimDir : aimDir./;if(!isdir(aimDir . '/'; if (!is_dir(aimDir)) { return false; } dirHandle=opendir(dirHandle = opendir(aimDir); while (false !== (file=readdir(file = readdir(dirHandle))) { if (file==.file == '.' || file == '..') { continue; } if (!is_dir(aimDir.aimDir . file)) { FileUtil :: unlinkFile(aimDir.aimDir . file); } else { FileUtil :: unlinkDir(aimDir.aimDir . file); } } closedir(dirHandle);returnrmdir(dirHandle); return rmdir(aimDir); } /*
    • 删除文件
    • @param string $aimUrl
    • @return boolean / public 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,oldDir, aimDir, overWrite = false) { aimDir = str_replace('', '/', aimDir);aimDir); aimDir = substr(aimDir,1)==/?aimDir, -1) == '/' ? aimDir : aimDir./;aimDir . '/'; oldDir = str_replace('', '/', oldDir);oldDir); oldDir = substr(oldDir,1)==/?oldDir, -1) == '/' ? oldDir : oldDir./;if(!isdir(oldDir . '/'; if (!is_dir(oldDir)) { return false; } if (!file_exists(aimDir)) { FileUtil :: createDir(aimDir); } dirHandle=opendir(dirHandle = opendir(oldDir); while (false !== (file=readdir(file = readdir(dirHandle))) { if (file==.file == '.' || file == '..') { continue; } if (!is_dir(oldDir.oldDir . file)) { FileUtil :: copyFile(oldDir.oldDir . file, aimDir.aimDir . file, overWrite); } else { FileUtil :: copyDir(oldDir . file,file, aimDir . file,file, overWrite); } } return closedir($dirHandle); } /*
    • 复制文件
    • @param string $fileUrl
    • @param string $aimUrl
    • @param boolean $overWrite 该参数控制是否覆盖原文件
    • @return boolean */ public function copyFile(fileUrl,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(aimUrl); FileUtil :: createDir(aimDir); copy(fileUrl,fileUrl, aimUrl); return true; } } ?> `