美文网首页
一个文件操作类,CI可以直接调用

一个文件操作类,CI可以直接调用

作者: Continue_li | 来源:发表于2019-12-12 13:31 被阅读0次

    <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');/**

    • 操纵文件类
    • 例子:
    • 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 {
      /
      *
      • 建立文件夹
      • @param string $aimUrl
      • @return viod
        /
        function createDir(aimUrl) {aimUrl = str_replace('', '/', aimUrl);aimDir = '';
        arr = explode('/',aimUrl);
        foreach (arr asstr) {
        aimDir .=str . '/';
        if (!file_exists(aimDir)) { mkdir(aimDir);
        }
        }
        }
        /
        *
      • 建立文件
      • @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;
        }
        }
        ?>

    相关文章

      网友评论

          本文标题:一个文件操作类,CI可以直接调用

          本文链接:https://www.haomeiwen.com/subject/itsogctx.html