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文件夹*/classFileUtil {/**

* 建立文件夹

*

* @param string $aimUrl

* @return viod*/function createDir($aimUrl) {$aimUrl = str_replace('', '/', $aimUrl);$aimDir = '';$arr = explode('/', $aimUrl);$result = true;foreach ($arras$str) {$aimDir .= $str . '/';if (!file_exists($aimDir)) {$result = mkdir($aimDir);

}

}return$result;

}/**

* 建立文件

*

* @param string $aimUrl

* @param boolean $overWrite 该参数控制是否覆盖原文件

* @return boolean*/function createFile($aimUrl, $overWrite = false) {if (file_exists($aimUrl) && $overWrite == false) {returnfalse;

}elseif (file_exists($aimUrl) && $overWrite == true) {

FileUtil:: unlinkFile($aimUrl);

}$aimDir = dirname($aimUrl);

FileUtil:: createDir($aimDir);touch($aimUrl);returntrue;

}/**

* 移动文件夹

*

* @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)) {returnfalse;

}if (!file_exists($aimDir)) {

FileUtil:: createDir($aimDir);

}

@$dirHandle = opendir($oldDir);if (!$dirHandle) {returnfalse;

}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);returnrmdir($oldDir);

}/**

* 移动文件

*

* @param string $fileUrl

* @param string $aimUrl

* @param boolean $overWrite 该参数控制是否覆盖原文件

* @return boolean*/function moveFile($fileUrl, $aimUrl, $overWrite = false) {if (!file_exists($fileUrl)) {returnfalse;

}if (file_exists($aimUrl) && $overWrite = false) {returnfalse;

}elseif (file_exists($aimUrl) && $overWrite = true) {

FileUtil:: unlinkFile($aimUrl);

}$aimDir = dirname($aimUrl);

FileUtil:: createDir($aimDir);rename($fileUrl, $aimUrl);returntrue;

}/**

* 删除文件夹

*

* @param string $aimDir

* @return boolean*/function unlinkDir($aimDir) {$aimDir = str_replace('', '/', $aimDir);$aimDir = substr($aimDir, -1) == '/' ? $aimDir : $aimDir . '/';if (!is_dir($aimDir)) {returnfalse;

}$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);returnrmdir($aimDir);

}/**

* 删除文件

*

* @param string $aimUrl

* @return boolean*/function unlinkFile($aimUrl) {if (file_exists($aimUrl)) {unlink($aimUrl);returntrue;

}else{returnfalse;

}

}/**

* 复制文件夹

*

* @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)) {returnfalse;

}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);

}

}returnclosedir($dirHandle);

}/**

* 复制文件

*

* @param string $fileUrl

* @param string $aimUrl

* @param boolean $overWrite 该参数控制是否覆盖原文件

* @return boolean*/function copyFile($fileUrl, $aimUrl, $overWrite = false) {if (!file_exists($fileUrl)) {returnfalse;

}if (file_exists($aimUrl) && $overWrite == false) {returnfalse;

}elseif (file_exists($aimUrl) && $overWrite == true) {

FileUtil:: unlinkFile($aimUrl);

}$aimDir = dirname($aimUrl);

FileUtil:: createDir($aimDir);copy($fileUrl, $aimUrl);returntrue;

}

}?>

php显示所有文件夹,显示所有文件和文件夹 php文件及文件夹操作(创建、删除、移动、复制)...相关推荐

  1. Day19-File操作-创建 删除,文件过滤

    import java.io.File; import java.io.IOException;/**创建功能:*public boolean createNewFile():创建文件 如果存在这样的 ...

  2. C# 文件流操作 之 删除、复制、转移多个文件

    /// <summary>         /// 删除文件夹下面所有图片         /// </summary>         /// <param name= ...

  3. QListWidget读取本地文件夹中文件并显示名字,双击读取xml数据

    文章目录 前言 一.读取本地文件并显示 二.双击读取数据 前言 本文主要是为了解决QListWidget读取本地文件夹中文件,并且显示的问题.然后双击读取其中xml数据 一.读取本地文件并显示 如下的 ...

  4. Winform中实现向窗体中拖放照片并显示以及拖放文件夹显示树形结构(附代码下载)

    场景 向窗体中拖拽照片并显示效果 向窗体中拖拽文件夹并显示树形结构效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 ...

  5. win10服务器文件夹显示不全,如何让Win10文件夹始终显示功能区有哪些方法

    如何让Win10文件夹始终显示功能区有哪些方法 腾讯视频/爱奇艺/优酷/外卖 充值4折起 方法一:借助快速访问工具栏 点开快速访问工具栏菜单,点击取消"最小化功能区"即可. 方法二 ...

  6. eclipse 的Java Resource文件夹显示有错,可是文件夹下面的文件没有提示错误,这是怎么回事?怎么解决?

    eclipse 的Java Resource文件夹显示有错,可是文件夹下面的文件没有提示错误,这是怎么回事?怎么解决? 1.maven更新一下 2.或者把这个工程给删除了在创建一遍看看还有没有出 3. ...

  7. macOS修复系统默认文件夹显示为英文的问题

    很多时候,我们在macOS的侧边栏中都会看到这种情况: 看见了吗?原本的"下载"文件夹变成了英文"Downloads",特别让人心烦,感觉十分突兀.但是还是有解 ...

  8. VS将复制过来的文件或文件夹显示到解决方案管理

    假设要将某文件\文件夹A 复制到 某项目B中 1.打开某项目B所在文件夹 2.复制想要复制的文件\文件夹A到项目B所在的文件夹中 3.打开VS,在VS的解决方案管理资源管理器中找到 显示所有文件 4. ...

  9. 关于碰到优盘插入电脑检测到病毒并且优盘里文件只显示System Volume Information文件夹的问题解决。

    关于碰到优盘插入电脑检测到病毒并且优盘里文件只显示System Volume Information文件夹的问题解决. 我曾经也碰到过优盘没怎么用过,去了一趟打印店,之后突然发现插到电脑上,电脑检测到 ...

  10. Windows 文件夹 显示svg缩略图

    Windows 文件夹 显示svg缩略图 svg图片在电脑上一般默认用浏览器打开,在文件夹中,svg缩略图都是以浏览器图标显示: 安装 SVG Viewer Extension for Windows ...

最新文章

  1. linux 同步与异步--阻塞与非阻塞型I/O
  2. 每日一皮:当我突然有一个很棒的调试想法...
  3. Java可视化开发开源框架
  4. 1150 Travelling Salesman Problem (25 分)【难度: 难 / 知识点: 图 模拟 未完成】
  5. SparkSQL操作Hive
  6. 主持人副语言包括什么_央视主持人大赛,董卿最精彩的这几段点评,居然被剪掉了...
  7. 解决error 1045: Access denied for user: 'root@localhost' (Using password: YES)
  8. Redis分布式锁—SETNX+Lua脚本实现篇
  9. C#中只使用Invokerequired来判断是不是UI线程可靠吗?
  10. 乐优商城(17)--评论服务
  11. Skin hierachy
  12. 电影院订票选座小程序,电影购票小程序,微信小程序电影院订票系统毕设作品
  13. JavaScript实现京东首页轮播图
  14. 数字金字塔:输入一个正整数n,输出n行数字金字塔.
  15. Dual Super-Resolution Learning for Semantic Segmentation解读
  16. 编程的第二个十年:关于Real™编程器的全部
  17. 对java 链表删除节点 引用误区理解:对局部变量 cur= cur.next及cur.next=cur.next.next,及cur.next = cur.next.next.next的理解图解
  18. c语言创意作业蜂鸣器,蜂鸣器c语言程序.doc
  19. 周训练计划之(全套的静态拉伸动作图解)
  20. 好未来赚数倍,大跌前又精准提前离场:高瓴张磊的核心投资方法论到底是什么?

热门文章

  1. 详述机器人的5种定位技术
  2. Python入门之爬虫--自动下载图片
  3. html5自由者,对自由人的选择左右东奥名单,双自由人让东奥卫冕难度增加
  4. 【Android使用Shape绘制虚线,在4.0以上的手机显示实线】解决方案
  5. 修改开机LOGO图片教程及注意事项/通过C++实现bmp图位深度从32位转换为8位
  6. 常见的部署类型(停机部署、蓝绿部署、滚动部署、灰度部署、AB测试等)
  7. 【Golang】string、int、int64互相转换
  8. g代码生成器 源代码_生成源代码,这是一个妥协
  9. 小小影视---24小时更新观看-免费高清国语-e+小小影视大全
  10. 获取手机验证码获取普通验证码