php显示所有文件夹,显示所有文件和文件夹 php文件及文件夹操作(创建、删除、移动、复制)...
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文件及文件夹操作(创建、删除、移动、复制)...相关推荐
- Day19-File操作-创建 删除,文件过滤
import java.io.File; import java.io.IOException;/**创建功能:*public boolean createNewFile():创建文件 如果存在这样的 ...
- C# 文件流操作 之 删除、复制、转移多个文件
/// <summary> /// 删除文件夹下面所有图片 /// </summary> /// <param name= ...
- QListWidget读取本地文件夹中文件并显示名字,双击读取xml数据
文章目录 前言 一.读取本地文件并显示 二.双击读取数据 前言 本文主要是为了解决QListWidget读取本地文件夹中文件,并且显示的问题.然后双击读取其中xml数据 一.读取本地文件并显示 如下的 ...
- Winform中实现向窗体中拖放照片并显示以及拖放文件夹显示树形结构(附代码下载)
场景 向窗体中拖拽照片并显示效果 向窗体中拖拽文件夹并显示树形结构效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 ...
- win10服务器文件夹显示不全,如何让Win10文件夹始终显示功能区有哪些方法
如何让Win10文件夹始终显示功能区有哪些方法 腾讯视频/爱奇艺/优酷/外卖 充值4折起 方法一:借助快速访问工具栏 点开快速访问工具栏菜单,点击取消"最小化功能区"即可. 方法二 ...
- eclipse 的Java Resource文件夹显示有错,可是文件夹下面的文件没有提示错误,这是怎么回事?怎么解决?
eclipse 的Java Resource文件夹显示有错,可是文件夹下面的文件没有提示错误,这是怎么回事?怎么解决? 1.maven更新一下 2.或者把这个工程给删除了在创建一遍看看还有没有出 3. ...
- macOS修复系统默认文件夹显示为英文的问题
很多时候,我们在macOS的侧边栏中都会看到这种情况: 看见了吗?原本的"下载"文件夹变成了英文"Downloads",特别让人心烦,感觉十分突兀.但是还是有解 ...
- VS将复制过来的文件或文件夹显示到解决方案管理
假设要将某文件\文件夹A 复制到 某项目B中 1.打开某项目B所在文件夹 2.复制想要复制的文件\文件夹A到项目B所在的文件夹中 3.打开VS,在VS的解决方案管理资源管理器中找到 显示所有文件 4. ...
- 关于碰到优盘插入电脑检测到病毒并且优盘里文件只显示System Volume Information文件夹的问题解决。
关于碰到优盘插入电脑检测到病毒并且优盘里文件只显示System Volume Information文件夹的问题解决. 我曾经也碰到过优盘没怎么用过,去了一趟打印店,之后突然发现插到电脑上,电脑检测到 ...
- Windows 文件夹 显示svg缩略图
Windows 文件夹 显示svg缩略图 svg图片在电脑上一般默认用浏览器打开,在文件夹中,svg缩略图都是以浏览器图标显示: 安装 SVG Viewer Extension for Windows ...
最新文章
- linux 同步与异步--阻塞与非阻塞型I/O
- 每日一皮:当我突然有一个很棒的调试想法...
- Java可视化开发开源框架
- 1150 Travelling Salesman Problem (25 分)【难度: 难 / 知识点: 图 模拟 未完成】
- SparkSQL操作Hive
- 主持人副语言包括什么_央视主持人大赛,董卿最精彩的这几段点评,居然被剪掉了...
- 解决error 1045: Access denied for user: 'root@localhost' (Using password: YES)
- Redis分布式锁—SETNX+Lua脚本实现篇
- C#中只使用Invokerequired来判断是不是UI线程可靠吗?
- 乐优商城(17)--评论服务
- Skin hierachy
- 电影院订票选座小程序,电影购票小程序,微信小程序电影院订票系统毕设作品
- JavaScript实现京东首页轮播图
- 数字金字塔:输入一个正整数n,输出n行数字金字塔.
- Dual Super-Resolution Learning for Semantic Segmentation解读
- 编程的第二个十年:关于Real™编程器的全部
- 对java 链表删除节点 引用误区理解:对局部变量 cur= cur.next及cur.next=cur.next.next,及cur.next = cur.next.next.next的理解图解
- c语言创意作业蜂鸣器,蜂鸣器c语言程序.doc
- 周训练计划之(全套的静态拉伸动作图解)
- 好未来赚数倍,大跌前又精准提前离场:高瓴张磊的核心投资方法论到底是什么?
热门文章
- 详述机器人的5种定位技术
- Python入门之爬虫--自动下载图片
- html5自由者,对自由人的选择左右东奥名单,双自由人让东奥卫冕难度增加
- 【Android使用Shape绘制虚线,在4.0以上的手机显示实线】解决方案
- 修改开机LOGO图片教程及注意事项/通过C++实现bmp图位深度从32位转换为8位
- 常见的部署类型(停机部署、蓝绿部署、滚动部署、灰度部署、AB测试等)
- 【Golang】string、int、int64互相转换
- g代码生成器 源代码_生成源代码,这是一个妥协
- 小小影视---24小时更新观看-免费高清国语-e+小小影视大全
- 获取手机验证码获取普通验证码