<?php/* 遍历目录函数,只读取目录的最外层的内容 */function readDirectory($path){$handle = opendir($path);while(($item = readdir($handle))!== false){//.和..这2个特殊的目录if($item!="."&&$item!=".."){if(is_file($path."/".$item)){$arr["file"][]=$item;}if(is_dir($path."/".$item)){$arr["dir"][]=$item;}}}closedir($handle);return $arr;}/* 获取文件夹大小 */function dirSize($path){$sum=0;global $sum;$handle=opendir($path);while(($item=readdir($handle))!==false){if($item!="."&&$item!=".."){if(is_file($path."/".$item)){$sum+=filesize($path."/".$item);}if(is_dir($path."/".$item)){$func=__FUNCTION__;$func($path."/".$item);}}}closedir($handle);return $sum;}/* 检测文件夹名称是否合法 */function checkFilename($filename){$pattern = "/[\/,\*,<>,\?\|]/";if(preg_match($pattern,$filename)){return false;}else{return true;}}/* 创建文件夹 */function createFolder($dirname){//检测文件夹名称是否合法if(checkFilename(basename($dirname))){//当前目录下是否存在同名文件夹名称if(!file_exists($dirname)){if(mkdir($dirname,0777,true)){$mes="文件夹创建成功";}else{$mes="文件夹创建失败";}}else{$mes="存在相同文件夹名称";}}else{$mes="非法文件夹名称";}return $mes;}/* 重命名文件夹 */function renameFolder($oldname,$newname){//检测文件夹名称是否合法if(checkFilename(basename($newname))){//检测当前目录下是否存在同名文件夹名称if(!file_exists($newname)){if(rename($oldname,$newname)){$mes="重命名成功";}else{$mes="重命名失败";}}else{$mes="存在同名文件夹";}}else{$mes="非法文件夹名称";}return $mes;}/* 复制文件夹 */function copyFolder($src,$dst){if(!file_exists($dst)){mkdir($dst,0777,true);}$handle=opendir($src);while(($item=readdir($handle))!==false){if($item!="."&&$item!=".."){if(is_file($src."/".$item)){copy($src."/".$item,$dst."/".$item);}if(is_dir($src."/".$item)){$func=__FUNCTION__;$func($src."/".$item,$dst."/".$item);}}}closedir($handle);return "复制成功";}/* 剪切文件夹 */function cutFolder($src,$dst){if(file_exists($dst)){if(is_dir($dst)){if(!file_exists($dst."/".basename($src))){if(rename($src,$dst."/".basename($src))){$mes="剪切成功";}else{$mes="剪切失败";}}else{$mes="存在同名文件夹";}}}else{$mes="目标文件夹不存在";}return $mes;}/* 删除文件夹 */function delFolder($path){$handle=opendir($path);//打开目录,获取句柄while(($item=readdir($handle))!==false){//读取句柄资源if($item!="."&&$item!=".."){if(is_file($path."/".$item)){unlink($path."/".$item);}if(is_dir($path."/".$item)){$func=__FUNCTION__;//自身函数名称$func($path."/".$item);}}}closedir($handle);rmdir($path);//删除目录,目录必须为空才能删除return "文件夹删除成功";}
?>

  

转载于:https://www.cnblogs.com/yxhblogs/p/5839498.html

PHP文件操作的经典案例相关推荐

  1. Visual C++网络编程经典案例详解 第8章 网络文件传输 使用api函数操作文件 创建文件 CreateFile原型

    使用mfc编程 处理使用CFile类操作文件 还可以使用api函数 有关文件操作的函数进行编程 用户可以使用函数Create()进行创建文件对象 HANDLE CreateFile{LPCTSTR l ...

  2. Python文件操作与matplotlib数据可视化案例一则

    问题描述: 某商场开业三个月后,有顾客反应商场一楼的手机信号不好,个别收银台有时无法正常使用微信支付或支付宝,商场内也有些位置无法正常使用微信.为此,商场安排工作人员在不同位置对手机信号强度进行测试以 ...

  3. Python文件操作小案例:交替合并两个记事本文件

    问题描述:编写程序,接收两个记事本文件名字,然后交替把两个记事本文件中的行合并到result.txt文件中,你一行来我一行,最后把行数较多的文件剩余内容全部写入目标文件. 参考代码: -------- ...

  4. Visual C++网络编程经典案例详解 第9章 实用播放器 数据读取与播放控制 识别数据文件信息

    识别数据文件信息主要是指对mp3数据格式识别 定义顺序代码如下 typedef struct mp3_struct //自定义mp3结构体 {char heade[3]; //tag字符标记char ...

  5. Py经典案例:利用Python调用数据库历史记录文件,实现BTC、LTC等Encrypted currency找出最佳出仓价、收益比的加密币模拟交易系统

    Py经典案例:利用Python调用数据库历史记录文件,实现BTC.LTC等Encrypted currency找出最佳出仓价.收益比的加密币模拟交易系统 目录 实现结果 设计思路 实现代码 实现结果 ...

  6. 87-Java方法递归形式、算法流程总结、递归常见案例、递归经典案例-猴子吃桃问题、非规律化递归案例-文件搜索、啤酒问题

    方法递归 一.递归的形式和特点 1.什么是方法递归? 方法直接调用自己或者间接调用自己的形式称为方法递归(recursion). 递归作为一种算法在程序设计语言中广泛应用. 2.递归的形式 直接递归: ...

  7. 返回文件后戳名——经典案例

    返回文件后戳名--经典案例 """设计函数,返回指定文件的后缀名 """def get_suffix(filename: str, has_ ...

  8. 十、文件操作(易懂易学习,附代码案例)

    十.文件操作 10.1 概述 10.1.1 文件分类 10.1.2 磁盘文件的分类 10.2 文件的打开和关闭 10.2.1 文件指针FILE 10.2.2 文件的打开 10.2.3 文件的关闭 10 ...

  9. PHP文件上传和文件操作案例

    <?php /**文件配置变量$dirname是目录名称*/ session_start(); $dirname = 'upload'; $fileClass = new fileClass($ ...

最新文章

  1. HarmonyOS 界面跳转以及界面跳转的同时传递参数
  2. 终于有篇看的懂的 B 树文章了!
  3. Endnote教程 : 仅需两步,一键转化参考文献为纯文本
  4. The requested URL /**** was not found on this server
  5. 在JDK 12精简数字格式中使用最小分数数字
  6. JSP:src路径里有中文,产生乱码问题
  7. 二叉树的应用 表达式处理_【每日编程208期】2018年408应用题41题
  8. Atitit.软件开发提升稳定性总结
  9. Linux 添加中文字体库
  10. 深度时空网络、记忆网络与特征表达学习在 CTR 预估中的应用
  11. java 获取linux 服务器字体_Java获得本地字体列表
  12. Java理解mian方法
  13. PC浏览器调试手机浏览器工具
  14. 【火星传媒深度】Coinbase:加密世界的“谷歌”
  15. 3D万花筒无限延伸动画特效(源码)
  16. 欧几里得算法和扩展欧几里得
  17. 8c创建gbase用户免密登录
  18. 随笔 | 近期工作感悟
  19. BM1684实战记录
  20. python 制作srt字幕

热门文章

  1. 【七】Java面向对象
  2. 手把手带你入门Python爬虫(一、工欲善其事必先利其器)
  3. python后端开发web_最简易的python web框架的后端实现
  4. Android安全笔记-Tasks与Recents Screen与Fragment基本概念
  5. MySQL笔记-唯一键的使用
  6. Leaflet文档阅读笔记-Quick Start Guide笔记
  7. Qt工作笔记-使用QpropertyAnimation实现控件上下滑动的效果
  8. C++ opengl 放置摄像机
  9. MySQL入门之创建、修改、删除、查看数据库
  10. c语言编程顺序查找例题,C语言典型编程例题.doc