当前位置:首页 > PHP教程 > php类库 > 列表

PHP文件操作类(文件和文件夹创建,复制,移动和删除)

发布:smiling 来源: PHP粉丝网  添加日期:2014-01-17 09:31:53 浏览: 评论:0 

本文章给大家分享的文件操作类包括对文件和文件夹创建,复制,移动和删除,有需要对文件操作学习的同学可进入参考参考。

实例代码如下:

  1. <?php 
  2. /** 
  3. * 操纵文件类 
  4.  
  5. * 例子: 
  6. * FileUtil::createDir('a/1/2/3');                    测试建立文件夹 建一个a/1/2/3文件夹 
  7. * FileUtil::createFile('b/1/2/3');                    测试建立文件        在b/1/2/文件夹下面建一个3文件 
  8. * FileUtil::createFile('b/1/2/3.exe');             测试建立文件        在b/1/2/文件夹下面建一个3.exe文件 
  9. * FileUtil::copyDir('b','d/e');                    测试复制文件夹 建立一个d/e文件夹,把b文件夹下的内容复制进去 
  10. * FileUtil::copyFile('b/1/2/3.exe','b/b/3.exe'); 测试复制文件        建立一个b/b文件夹,并把b/1/2文件夹中的3.exe文件复制进去 
  11. * FileUtil::moveDir('a/','b/c');                    测试移动文件夹 建立一个b/c文件夹,并把a文件夹下的内容移动进去,并删除a文件夹 
  12. * FileUtil::moveFile('b/1/2/3.exe','b/d/3.exe'); 测试移动文件        建立一个b/d文件夹,并把b/1/2中的3.exe移动进去                    
  13. * FileUtil::unlinkFile('b/d/3.exe');             测试删除文件        删除b/d/3.exe文件 
  14. * FileUtil::unlinkDir('d');                      测试删除文件夹 删除d文件夹 
  15. */ 
  16. class FileUtil { 
  17. /** 
  18.     * 建立文件夹 
  19.     * 
  20.     * @param string $aimUrl 
  21.     * @return viod 
  22.     */ 
  23. function createDir($aimUrl) { 
  24.        $aimUrl = str_replace('''/'$aimUrl); 
  25.        $aimDir = ''
  26.        $arr = explode('/'$aimUrl); 
  27.        foreach ($arr as $str) { 
  28.          $aimDir .= $str . '/'
  29.          if (!file_exists($aimDir)) { 
  30.             mkdir($aimDir); 
  31.          } 
  32.        } 
  33. /** 
  34.     * 建立文件 
  35.     * 
  36.     * @param string $aimUrl  
  37.     * @param boolean $overWrite 该参数控制是否覆盖原文件 
  38.     * @return boolean 
  39.     */ 
  40. function createFile($aimUrl$overWrite = false) { 
  41.        if (file_exists($aimUrl) && $overWrite == false) { 
  42.          return false; 
  43.        } elseif (file_exists($aimUrl) && $overWrite == true) { 
  44.          FileUtil::unlinkFile($aimUrl); 
  45.        } 
  46.        $aimDir = dirname($aimUrl); 
  47.        FileUtil::createDir($aimDir); 
  48.        touch($aimUrl); 
  49.        return true; 
  50. /** 
  51.     * 移动文件夹 
  52.     * 
  53.     * @param string $oldDir 
  54.     * @param string $aimDir 
  55.     * @param boolean $overWrite 该参数控制是否覆盖原文件 
  56.     * @return boolean 
  57.     */ 
  58. function moveDir($oldDir$aimDir$overWrite = false) { 
  59.        $aimDir = str_replace('''/'$aimDir); 
  60.        $aimDir = substr($aimDir, -1) == '/' ? $aimDir : $aimDir . '/'
  61.        $oldDir = str_replace('''/'$oldDir); 
  62.        $oldDir = substr($oldDir, -1) == '/' ? $oldDir : $oldDir . '/'
  63.        if (!is_dir($oldDir)) { 
  64.          return false; 
  65.        } 
  66.        if (!file_exists($aimDir)) { 
  67.          FileUtil::createDir($aimDir); 
  68.        } 
  69.        @$dirHandle = opendir($oldDir); 
  70.        if (!$dirHandle) { 
  71.          return false; 
  72.        } 
  73.        while(false !== ($file = readdir($dirHandle))) { 
  74.          if ($file == '.' || $file == '..') { 
  75.             continue
  76.          } 
  77.          if (!is_dir($oldDir.$file)) { 
  78.             FileUtil::moveFile($oldDir . $file$aimDir . $file$overWrite); 
  79.          } else { 
  80.             FileUtil::moveDir($oldDir . $file$aimDir . $file$overWrite); 
  81.          } 
  82.        } 
  83.        closedir($dirHandle); 
  84.        return rmdir($oldDir); 
  85. /** 
  86.     * 移动文件 
  87.     * 
  88.     * @param string $fileUrl 
  89.     * @param string $aimUrl 
  90.     * @param boolean $overWrite 该参数控制是否覆盖原文件 
  91.     * @return boolean 
  92.     */ 
  93. function moveFile($fileUrl$aimUrl$overWrite = false) { 
  94.        if (!file_exists($fileUrl)) { 
  95.          return false; 
  96.        } 
  97.        if (file_exists($aimUrl) && $overWrite = false) { 
  98.          return false; 
  99.        } elseif (file_exists($aimUrl) && $overWrite = true) { 
  100.          FileUtil::unlinkFile($aimUrl); 
  101.        } 
  102.        $aimDir = dirname($aimUrl); 
  103.        FileUtil::createDir($aimDir); 
  104.        rename($fileUrl$aimUrl); 
  105.        return true; 
  106. /** 
  107.     * 删除文件夹 
  108.     * 
  109.     * @param string $aimDir 
  110.     * @return boolean 
  111.     */ 
  112. function unlinkDir($aimDir) { 
  113.        $aimDir = str_replace('''/'$aimDir); 
  114.        $aimDir = substr($aimDir, -1) == '/' ? $aimDir : $aimDir.'/'
  115.        if (!is_dir($aimDir)) { 
  116.          return false; 
  117.        } 
  118.        $dirHandle = opendir($aimDir); 
  119.        while(false !== ($file = readdir($dirHandle))) { 
  120.          if ($file == '.' || $file == '..') { 
  121.             continue
  122.          } 
  123.          if (!is_dir($aimDir.$file)) { 
  124.             FileUtil::unlinkFile($aimDir . $file); 
  125.          } else { 
  126.             FileUtil::unlinkDir($aimDir . $file); 
  127.          } 
  128.        } 
  129.        closedir($dirHandle); 
  130.        return rmdir($aimDir); 
  131. /** 
  132.     * 删除文件 
  133.     * 
  134.     * @param string $aimUrl 
  135.     * @return boolean 
  136.     */ 
  137. function unlinkFile($aimUrl) { 
  138.        if (file_exists($aimUrl)) { 
  139.          unlink($aimUrl); 
  140.          return true; 
  141.        } else { 
  142.          return false; 
  143.        } 
  144. /** 
  145.     * 复制文件夹 
  146.     * 
  147.     * @param string $oldDir 
  148.     * @param string $aimDir 
  149.     * @param boolean $overWrite 该参数控制是否覆盖原文件 
  150.     * @return boolean 
  151.     */ 
  152. function copyDir($oldDir$aimDir$overWrite = false) { 
  153.        $aimDir = str_replace('''/'$aimDir); 
  154.        $aimDir = substr($aimDir, -1) == '/' ? $aimDir : $aimDir.'/'
  155.        $oldDir = str_replace('''/'$oldDir); 
  156.        $oldDir = substr($oldDir, -1) == '/' ? $oldDir : $oldDir.'/'
  157.        if (!is_dir($oldDir)) { 
  158.          return false; 
  159.        } 
  160.        if (!file_exists($aimDir)) { 
  161.          FileUtil::createDir($aimDir); 
  162.        } 
  163.        $dirHandle = opendir($oldDir); 
  164.        while(false !== ($file = readdir($dirHandle))) { 
  165.          if ($file == '.' || $file == '..') { 
  166.             continue
  167.          } 
  168.          if (!is_dir($oldDir . $file)) { 
  169.             FileUtil::copyFile($oldDir . $file$aimDir . $file$overWrite); 
  170.          } else { 
  171.             FileUtil::copyDir($oldDir . $file$aimDir . $file$overWrite); 
  172.          } 
  173.        } 
  174.        return closedir($dirHandle); 
  175. /** 
  176.     * 复制文件 
  177.     * 
  178.     * @param string $fileUrl 
  179.     * @param string $aimUrl 
  180.     * @param boolean $overWrite 该参数控制是否覆盖原文件 
  181.     * @return boolean 
  182.     */ 
  183. function copyFile($fileUrl$aimUrl$overWrite = false) { 
  184.        if (!file_exists($fileUrl)) { 
  185.          return false; 
  186.        } 
  187.        if (file_exists($aimUrl) && $overWrite == false) { 
  188.          return false; 
  189.        } elseif (file_exists($aimUrl) && $overWrite == true) { 
  190.          FileUtil::unlinkFile($aimUrl); 
  191.        } 
  192.        $aimDir = dirname($aimUrl); 
  193.        FileUtil::createDir($aimDir); 
  194.        copy($fileUrl$aimUrl); 
  195.        return true; 
  196. ?> 

Tags: 文件 操作 文件

分享到: