zoukankan      html  css  js  c++  java
  • php简单实用的操作文件工具类(创建、移动、复制、删除)

    php简单实用好用的文件及文件夹复制函数和工具类(创建、移动、复制、删除)
    1. function recurse_copy($src,$dst) {  // 原目录,复制到的目录
    2.         $dir = opendir($src);
    3.         @mkdir($dst);
    4.         while(false !== ( $file = readdir($dir)) ) {
    5.             if (( $file != '.' ) && ( $file != '..' )) {
    6.                 if ( is_dir($src . '/' . $file) ) {
    7.                     recurse_copy($src . '/' . $file,$dst . '/' . $file);
    8.                 }
    9.                 else {
    10.                     copy($src . '/' . $file,$dst . '/' . $file);
    11.                 }
    12.             }
    13.         }
    14.         closedir($dir);
    15.     }
    16.     echo recurse_copy("原文件夹","目录文件夹");
    复制

    还有更流弊的工具类:

    1. <?php
    2.  
    3. /**
    4.  * 操纵文件类
    5.  * 
    6.  * 例子:
    7.  * FileUtil::createDir('a/1/2/3');                    测试建立文件夹 建一个a/1/2/3文件夹
    8.  * FileUtil::createFile('b/1/2/3');                    测试建立文件        在b/1/2/文件夹下面建一个3文件
    9.  * FileUtil::createFile('b/1/2/3.exe');             测试建立文件        在b/1/2/文件夹下面建一个3.exe文件
    10.  * FileUtil::copyDir('b','d/e');                    测试复制文件夹 建立一个d/e文件夹,把b文件夹下的内容复制进去
    11.  * FileUtil::copyFile('b/1/2/3.exe','b/b/3.exe'); 测试复制文件        建立一个b/b文件夹,并把b/1/2文件夹中的3.exe文件复制进去
    12.  * FileUtil::moveDir('a/','b/c');                    测试移动文件夹 建立一个b/c文件夹,并把a文件夹下的内容移动进去,并删除a文件夹
    13.  * FileUtil::moveFile('b/1/2/3.exe','b/d/3.exe'); 测试移动文件        建立一个b/d文件夹,并把b/1/2中的3.exe移动进去                   
    14.  * FileUtil::unlinkFile('b/d/3.exe');             测试删除文件        删除b/d/3.exe文件
    15.  * FileUtil::unlinkDir('d');                      测试删除文件夹 删除d文件夹
    16.  */
    17. class FileUtil {
    18.  
    19.     /**
    20.      * 建立文件夹
    21.      *
    22.      * @param string $aimUrl
    23.      * @return viod
    24.      */
    25.     function createDir($aimUrl) {
    26.         $aimUrl = str_replace('', '/', $aimUrl);
    27.         $aimDir = '';
    28.         $arr = explode('/', $aimUrl);
    29.         $result = true;
    30.         foreach ($arr as $str) {
    31.             $aimDir .= $str . '/';
    32.             if (!file_exists($aimDir)) {
    33.                 $result = mkdir($aimDir);
    34.             }
    35.         }
    36.         return $result;
    37.     }
    38.  
    39.     /**
    40.      * 建立文件
    41.      *
    42.      * @param string $aimUrl 
    43.      * @param boolean $overWrite 该参数控制是否覆盖原文件
    44.      * @return boolean
    45.      */
    46.     function createFile($aimUrl, $overWrite = false) {
    47.         if (file_exists($aimUrl) && $overWrite == false) {
    48.             return false;
    49.         } elseif (file_exists($aimUrl) && $overWrite == true) {
    50.             FileUtil :: unlinkFile($aimUrl);
    51.         }
    52.         $aimDir = dirname($aimUrl);
    53.         FileUtil :: createDir($aimDir);
    54.         touch($aimUrl);
    55.         return true;
    56.     }
    57.  
    58.     /**
    59.      * 移动文件夹
    60.      *
    61.      * @param string $oldDir
    62.      * @param string $aimDir
    63.      * @param boolean $overWrite 该参数控制是否覆盖原文件
    64.      * @return boolean
    65.      */
    66.     function moveDir($oldDir, $aimDir, $overWrite = false) {
    67.         $aimDir = str_replace('', '/', $aimDir);
    68.         $aimDir = substr($aimDir, -1) == '/' ? $aimDir : $aimDir . '/';
    69.         $oldDir = str_replace('', '/', $oldDir);
    70.         $oldDir = substr($oldDir, -1) == '/' ? $oldDir : $oldDir . '/';
    71.         if (!is_dir($oldDir)) {
    72.             return false;
    73.         }
    74.         if (!file_exists($aimDir)) {
    75.             FileUtil :: createDir($aimDir);
    76.         }
    77.         @ $dirHandle = opendir($oldDir);
    78.         if (!$dirHandle) {
    79.             return false;
    80.         }
    81.         while (false !== ($file = readdir($dirHandle))) {
    82.             if ($file == '.' || $file == '..') {
    83.                 continue;
    84.             }
    85.             if (!is_dir($oldDir . $file)) {
    86.                 FileUtil :: moveFile($oldDir . $file, $aimDir . $file, $overWrite);
    87.             } else {
    88.                 FileUtil :: moveDir($oldDir . $file, $aimDir . $file, $overWrite);
    89.             }
    90.         }
    91.         closedir($dirHandle);
    92.         return rmdir($oldDir);
    93.     }
    94.  
    95.     /**
    96.      * 移动文件
    97.      *
    98.      * @param string $fileUrl
    99.      * @param string $aimUrl
    100.      * @param boolean $overWrite 该参数控制是否覆盖原文件
    101.      * @return boolean
    102.      */
    103.     function moveFile($fileUrl, $aimUrl, $overWrite = false) {
    104.         if (!file_exists($fileUrl)) {
    105.             return false;
    106.         }
    107.         if (file_exists($aimUrl) && $overWrite = false) {
    108.             return false;
    109.         } elseif (file_exists($aimUrl) && $overWrite = true) {
    110.             FileUtil :: unlinkFile($aimUrl);
    111.         }
    112.         $aimDir = dirname($aimUrl);
    113.         FileUtil :: createDir($aimDir);
    114.         rename($fileUrl, $aimUrl);
    115.         return true;
    116.     }
    117.  
    118.     /**
    119.      * 删除文件夹
    120.      *
    121.      * @param string $aimDir
    122.      * @return boolean
    123.      */
    124.     function unlinkDir($aimDir) {
    125.         $aimDir = str_replace('', '/', $aimDir);
    126.         $aimDir = substr($aimDir, -1) == '/' ? $aimDir : $aimDir . '/';
    127.         if (!is_dir($aimDir)) {
    128.             return false;
    129.         }
    130.         $dirHandle = opendir($aimDir);
    131.         while (false !== ($file = readdir($dirHandle))) {
    132.             if ($file == '.' || $file == '..') {
    133.                 continue;
    134.             }
    135.             if (!is_dir($aimDir . $file)) {
    136.                 FileUtil :: unlinkFile($aimDir . $file);
    137.             } else {
    138.                 FileUtil :: unlinkDir($aimDir . $file);
    139.             }
    140.         }
    141.         closedir($dirHandle);
    142.         return rmdir($aimDir);
    143.     }
    144.  
    145.     /**
    146.      * 删除文件
    147.      *
    148.      * @param string $aimUrl
    149.      * @return boolean
    150.      */
    151.     function unlinkFile($aimUrl) {
    152.         if (file_exists($aimUrl)) {
    153.             unlink($aimUrl);
    154.             return true;
    155.         } else {
    156.             return false;
    157.         }
    158.     }
    159.  
    160.     /**
    161.      * 复制文件夹
    162.      *
    163.      * @param string $oldDir
    164.      * @param string $aimDir
    165.      * @param boolean $overWrite 该参数控制是否覆盖原文件
    166.      * @return boolean
    167.      */
    168.     function copyDir($oldDir, $aimDir, $overWrite = false) {
    169.         $aimDir = str_replace('', '/', $aimDir);
    170.         $aimDir = substr($aimDir, -1) == '/' ? $aimDir : $aimDir . '/';
    171.         $oldDir = str_replace('', '/', $oldDir);
    172.         $oldDir = substr($oldDir, -1) == '/' ? $oldDir : $oldDir . '/';
    173.         if (!is_dir($oldDir)) {
    174.             return false;
    175.         }
    176.         if (!file_exists($aimDir)) {
    177.             FileUtil :: createDir($aimDir);
    178.         }
    179.         $dirHandle = opendir($oldDir);
    180.         while (false !== ($file = readdir($dirHandle))) {
    181.             if ($file == '.' || $file == '..') {
    182.                 continue;
    183.             }
    184.             if (!is_dir($oldDir . $file)) {
    185.                 FileUtil :: copyFile($oldDir . $file, $aimDir . $file, $overWrite);
    186.             } else {
    187.                 FileUtil :: copyDir($oldDir . $file, $aimDir . $file, $overWrite);
    188.             }
    189.         }
    190.         return closedir($dirHandle);
    191.     }
    192.  
    193.     /**
    194.      * 复制文件
    195.      *
    196.      * @param string $fileUrl
    197.      * @param string $aimUrl
    198.      * @param boolean $overWrite 该参数控制是否覆盖原文件
    199.      * @return boolean
    200.      */
    201.     function copyFile($fileUrl, $aimUrl, $overWrite = false) {
    202.         if (!file_exists($fileUrl)) {
    203.             return false;
    204.         }
    205.         if (file_exists($aimUrl) && $overWrite == false) {
    206.             return false;
    207.         } elseif (file_exists($aimUrl) && $overWrite == true) {
    208.             FileUtil :: unlinkFile($aimUrl);
    209.         }
    210.         $aimDir = dirname($aimUrl);
    211.         FileUtil :: createDir($aimDir);
    212.         copy($fileUrl, $aimUrl);
    213.         return true;
    214.     }
    215.  
    216. }
    217.  
    218. ?>
  • 相关阅读:
    Python爬虫入门教程 53-100 Python3爬虫获取三亚天气做旅游参照
    计算机大专学历,2019如何应届毕业薪水过万!
    Python爬虫入门教程 52-100 Python3爬虫获取博客园文章定时发送到邮箱
    Python爬虫入门教程 51-100 Python3爬虫通过m3u8文件下载ts视频-Python爬虫6操作
    Python爬虫入门教程 50-100 Python3爬虫爬取VIP视频-Python爬虫6操作
    nvm-windows
    如何进行 IIS Log 分析
    常用 Jenkins 配置
    Jenkins 插件安装问题
    常用 SQL Server 脚本
  • 原文地址:https://www.cnblogs.com/ZDPPU/p/5823845.html
Copyright © 2011-2022 走看看