php简单实用的操作文件工具类(创建移动复制删除)

Posted 飘渺的悠远

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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. ?>

以上是关于php简单实用的操作文件工具类(创建移动复制删除)的主要内容,如果未能解决你的问题,请参考以下文章

java实现简单文件操作工具类

php PHP FTP操作类(上传,拷贝,移动,删除文件/创建目录)

文件操作类File

文件工具类——文件删除复制移动重命名

4款简单实用的的服务器文件管理工具推荐

php:文件操作