一、遍历 opendir

  具体函数我就不解释了,直接看代码理解:

<?php

header("Content-Type:Text/html;charset=utf8");
$dir = 'd:/test/'; //将路径赋值给变量
if(is_dir($dir)){ //判断该变量是不是一个目录
if($dh = opendir($dir)){ //打开目录
//读取文件,当文件不是空的时候,循环读出文件
while(($file = readdir($dh))!==false){
if($file == ''||$file == '..'||$file == '.'){
continue; //如果文件中有‘’和“..”就跳出
}
echo "file:{$file}"."<br>"; //输出文件名
echo "filetype:".filetype($dir.$file)."<br>";
}
}
closedir($dh); //关闭目录
}
?>

  在我的D:/test/目录下的结果:

  aaarticlea/png;base64,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" alt="" />

  现在我们来写一个函数,遍历指定目录下所有文件,如果遇到目录,继续遍历目录下的文件。

<?php

header("Content-Type:Text/html;charset=utf8");
$dir = 'd:/test/'; //将路径赋值给变量
function scanAll($dir){
if(is_dir($dir)){ //判断该变量是不是一个目录
echo "DIR:".$dir."<br>";
$child = scandir($dir) ; //列出指定路径中的文件和目录并赋值给$child
foreach($child as $c){
if($c !== '.' && $c !== '..'){ //不等于当前目录且不等于父目录
scanAll($dir.'/'.$c); //遍历递归
}
}
}
if(is_file($dir)){
echo 'File:'.$dir."<br>";
}
} scanAll($dir);
?>

2、复制目录 copy($source,$dest)

<?php
//目录复制
header("Content-Type:Text/html;charset=utf8");
function copydir($sourceDir,$destDir){ if(!is_dir($sourceDir)){
return false;
}
if(!is_dir($destDir)){
if(!mkdir($destDir)){
return false;
}
}
$dir = opendir($sourceDir);
if(!$dir){
return false;
}
while(false !== ($file=readdir($dir))){
if($file != '.' && $file != '..'){
if(is_dir($sourceDir.'/'.$file)){
if(!copydir($sourceDir.'/'.$file,$destDir.'/'.$file)) {
return false;
}
}else{
if(!copy($sourceDir.'/'.$file,$destDir.'/'.$file)){ } }
}
}
closedir($dir);
return true;
}

3、删除目录 --unlink($path)

<?php
//删除目录
header("Content-Type:Text/html;charset=utf8");
function deldir($dir){
$dh = opendir($dir);
while($file = readdir($dh)){
if($file !='.' && $file != '..'){
$fullpath = $dir.'/'.$file;
if(!is_dir($fullpath)){
unlink($fullpath);
}else{
deldir($fullpath);
}
}
}
closedir($dh); if(rmdir($dir)){
return true;
}
return false;
}

PHP实现遍历、复制、删除目录的更多相关文章

  1. Java数组复制、遍历、反转

    /* 1.数组长度,直接length 即可! 2.min()/max(),需要调用库! 3.数组的复制 ,遍历复制,或者直接命名相等 即可! 4.数组反转时,直接折中即可!对调两重循环麻烦! */ i ...

  2. JS - 二叉树算法实现与遍历 (更新中...)

    一.关于二叉树: 截图来自:https://segmentfault.com/a/1190000000740261 温馨提示:学习以及使用二叉树概念,心中永远有这么一个图,对于理解和接受二叉树有很大的 ...

  3. liist不同遍历优缺点

    JAVA中循环删除list中元素的方法总结 印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了,然后去科普了一下,再然后发现这是一个 ...

  4. js中的深复制与浅复制

    前言 所谓深复制与浅复制(深拷贝与浅拷贝),乍一听感觉听高大上,像是一个非常难理解的概念,其实我们平常项目开发都是在用的,只是你可能不知道该怎么叫它的名字而已,就像你听熟了一首歌,就是不知道这首歌叫什 ...

  5. JavaScript Object的复制

    var obj = { a: 1, b: 2, c: { d: 3, e: 4, f: function () { console.log("对象复制"); } } } 1. fo ...

  6. python第六天 函数 python标准库实例大全

    今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...

  7. linux的简单了解和使用

    一. Linux概述  1.1. 简介  Linux是一个自由的,免费的,源码开放的操作系统.也是开源软件中最著名的例子.其最主要的目的就是为了建立不受任何商品化软件版权制约的,全世界都能使用的类Un ...

  8. 《高性能javascript》 领悟随笔之-------DOM编程篇

    <高性能javascript> 领悟随笔之-------DOM编程篇一 序:在javaSctipt中,ECMASCRIPT规定了它的语法,BOM实现了页面与浏览器的交互,而DOM则承载着整 ...

  9. WebClient 实现多文件/文本同时上传

    public class CreateBytes { Encoding encoding = Encoding.UTF8; /**/ /// <summary> /// 拼接所有的二进制数 ...

  10. Python常用内置函数总结

    一.数学相关 1.绝对值:abs(-1)2.最大最小值:max([1,2,3]).min([1,2,3])3.序列长度:len('abc').len([1,2,3]).len((1,2,3))4.取模 ...

随机推荐

  1. [原创]Devexpress XtraReports 系列 7 创建Drill-Down(向下钻取)报表

    昨天发表了Devexpress XtraReports系列第六篇[原创]Devexpress XtraReports 系列 6 创建并排报表,今天我们继续. 今天的主题是创建Drill-Down报表. ...

  2. spring 解析配置文件问题

    问题描述 2014-02-25 16:39:36.068 [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2] WARN ...

  3. IIS中的上传目录权限设置问题

    虽然 Apache 的名声可能比 IIS 好,但我相信用 IIS 来做 Web 服务器的人一定也不少.说实话,我觉得 IIS 还是不错的,尤其是 Windows 2003 的 IIS 6(马上 Lon ...

  4. c# 调用zebra打印指令 打印到USB端口

    c# 调用zebra打印机指令打印条码,如果直接打印到lpt1端口的打印机,通过copy指令没有问题, 但如果ZEBRA打印机是通过USB连接,打印机端口为usb001,则程序不能直接拷贝到usb00 ...

  5. 移动端页面的head头部内容

  6. SpringMVC3.2+JPA使用注解的方式环境搭建

    ==============================entity=========================================================package ...

  7. Odoo的Domain (一)

    Odoo 的Domain:多个条件的列表. 条件:(字段名,操作符,值)三元式(列表或者元组) 字段名:当前模型的字段或者是通过点操作符访问的Many2one/Many2Many对象,当是Many2M ...

  8. web APi角色认证

    http://www.cnblogs.com/youring2/archive/2013/03/09/2950992.html http://kb.cnblogs.com/page/107117/

  9. Apache实现动态虚拟主机

    经常在开发中为Apache web server添加虚拟主机  方便多个项目的 同时运营,但是每次增加新的项目时都得重新配置增加VirtualHost:虚拟主机    部分,时间久了VirtualHo ...

  10. Mac OS X取消Apache(httpd)开机启动

    安装MAMP后,启动服务时提示Apache启动失败,80端口被占用.查看进程发现存在几个httpd. OS X自带Apache,可是默认是没有启动的.我也没有开启Web共享,怎么就开机启动了呢? 不知 ...