<?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 "文件夹删除成功";
}
?>

  

PHP文件操作的经典案例的更多相关文章

  1. Linux操作系统启动故障排错之"/sbin/init"文件被删除恢复案例

    Linux操作系统启动故障排错之"/sbin/init"文件被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.删除"/sbin/ini ...

  2. Linux操作系统启动故障排错之"/etc/fstab"文件被删除恢复案例

    Linux操作系统启动故障排错之"/etc/fstab"文件被删除恢复案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模拟故障 [root@yinzhe ...

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

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

  4. Linux运维之道(大量经典案例、问题分析,运维案头书,红帽推荐)

    Linux运维之道(大量经典案例.问题分析,运维案头书,红帽推荐) 丁明一 编   ISBN 978-7-121-21877-4 2014年1月出版 定价:69.00元 448页 16开 编辑推荐 1 ...

  5. 阿里云资深DBA专家罗龙九:云数据库十大经典案例分析【转载】

    阿里云资深DBA专家罗龙九:云数据库十大经典案例分析 2016-07-21 06:33 本文已获阿里云授权发布,转载具体要求见文末 摘要:本文根据阿里云资深DBA专家罗龙九在首届阿里巴巴在线峰会的&l ...

  6. 经典案例复盘——运维专家讲述如何实现K8S落地

    经典案例复盘——运维专家讲述如何实现K8S落地 背景介绍 运满满自开始微服务改造以来,线上线下已有数千个微服务的 Java 实例在运行中.这些 Java 实例部署在数百台云服务器或虚机上,除少数访问量 ...

  7. c#中@标志的作用 C#通过序列化实现深表复制 细说并发编程-TPL 大数据量下DataTable To List效率对比 【转载】C#工具类:实现文件操作File的工具类 异步多线程 Async .net 多线程 Thread ThreadPool Task .Net 反射学习

    c#中@标志的作用   参考微软官方文档-特殊字符@,地址 https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/toke ...

  8. 100个Linux Shell脚本经典案例(附PDF)

    转载自:https://mp.weixin.qq.com/s/tCKAM67_7K7q2vJthaIsDQ 原文链接:https://wenku.baidu.com/view/4f089430a116 ...

  9. javascript的理解及经典案例

    js的简介: JavaScript是一种能让你的网页更加生动活泼的程式语言,也是目前网页中设计中最容易学又最方便的语言. 你可以利用JavaScript轻易的做出亲切的欢迎讯息.漂亮的数字钟.有广告效 ...

随机推荐

  1. Ubuntu14下Hadoop开发&lt;2&gt; 编译64位Hadoop2.4

    Hadoop官方站点仅仅提供了32位的Hadoop包.我装的是64位的系统.自然无法使用,会报错误,导致的结果是无法启动hadoop libhadoop.so.1.0.0 which might ha ...

  2. ECharts整合HT&#160;for&#160;Web的网络拓扑图应用

    ECharts图形组件在1.0公布的时候我就已经有所关注.今天在做项目的时候遇到了图标的需求,在HTfor Web上也有图形组件的功能.可是在尝试了下详细实现后,发现HT for Web的图形组件是以 ...

  3. php把时间存入数据库为年月日时分秒类型

    时间用now() $sql1 = "insert into registerip (name,logintime,ip,url) values ('1211121',now(),'127.0 ...

  4. 第 1 章 第 1 题 高级语言的排序问题 C++标准算法实现

    问题分析 依题意,所需程序不用过多考虑效率且暗示使用库,自然想到用高级语言实现(个人选择C++).可用顺序容器暂存数据,用标准算法解决排序问题. 代码实现 #include <iostream& ...

  5. C# - Garbage Collection

     The .NET Framework's garbage collector manages the allocation and release of memory for your appl ...

  6. iOS8需要兼容的内容

    本文转载至  http://blog.csdn.net/liuwuguigui/article/details/39494435 1.iPad上使用presentModalViewController ...

  7. input光标位置

    兼容谷歌火狐-input光标位置 input框在没有添加任何效果的情况下,输入文字后光标始终在最后的位置,谷歌||火狐效果一样 但是在给input加入点击事件后 谷歌:input框插入文字后,光标会自 ...

  8. 局域网如何通过SSH连接虚拟机装的centOS系统

    首先,在一个局域网内的一台机器上装了虚拟机,虚拟机上装了centos系统: 但是,只有本机能连接centos,其他电脑都连不上: ping了一下发现不通,然后排查原因. 我发现局域网内的机器IP都是: ...

  9. HTML5 Canvas 画图入门

    HTML5 Canvas 画图入门 HTML5 Canvas 画图入门,仅供学习參考 <!DOCTYPE html> <html> <head> <meta ...

  10. HLS切片机

    参考: 1,linux下搭建生成HLS所需的.ts和.m3u8文件http://www.cnblogs.com/mystory/archive/2013/04/07/3006200.html2,iPh ...