先说一下基础知识:

文件位置如下图所示:

1、判断是文件还是目录

var_dump(filetype("./aa/bb/cc.txt"));

  输出: string(4) "file"

var_dump(filetype("./aa"));

    输出: string(3) "dir"

 2、判断是否是文件(是返回ture)

var_dump(is_file("./aa"));  

输出bool(false)

3、判断是否是目录(是返回ture)

var_dump(is_dir("./aa"));

  输出: bool(true)

4、文件的访问、创建与修改时间

echo date("Y-m-d H:i:s",fileatime("./aa")); //文件的上次访问时间

filectime("./aa.txt"); //文件的创建时间

echo date("Y-m-d H:i:s",filemtime("./aa.txt")); //文件的修改时间

 5、获取文件大小

filesize("./aa.txt");

  6、判断文件是否存在

file_exists("./aa.txt")

  7、服务器的根目录

echo $_SERVER['DOCUMENT_ROOT'];

  输出:D:/phpStudy/WWW

注意:/代表根,在网页里面代表www目录,在PHP里面代表磁盘根

8、路径

echo basename("./aa/bb/cc.txt"); //获取路径中的文件名
echo dirname("../0508/DB.class.php"); //获取路径中的文件夹目录
var_dump(pathinfo("../0508/DB.class.php")); //获取路径信息
echo realpath("./aa/bb/cc.txt"); //将相对路径转化成绝对路径

  依次输出:

cc.txt

../0508

array(4) {
["dirname"]=>
string(7) "../0508"
["basename"]=>
string(12) "DB.class.php"
["extension"]=>
string(3) "php"
["filename"]=>
string(8) "DB.class"
}
D:\phpStudy\WWW\2017-05\0519\aa\bb\cc.txt

9.目录操作

mkdir("./aa"); //创建目录
rmdir("./aa"); //删除目录,目录必须为空
rename("./test","../ceshi"); //移动目录

  第一种遍历目录:

var_dump(glob("./aa/bb/*.txt")); //获取目录下所有文件

  输出:

array(6) {
[0]=>
string(14) "./aa/bb/cc.txt"
[1]=>
string(14) "./aa/bb/dd.txt"
[2]=>
string(14) "./aa/bb/ee.txt"
[3]=>
string(14) "./aa/bb/ff.txt"
[4]=>
string(14) "./aa/bb/gg.txt"
[5]=>
string(14) "./aa/bb/hh.txt"
}

第二种遍历目录:(重要)

//打开目录,返回目录资源
$dname = "./aa/bb";
$dir = opendir($dname); //从目录资源里面读文件,每次读一个
while($fname = readdir($dir))
{
echo $dname."/".$fname."<br>";
} //关闭目录资源
closedir($dir);

  

输出:

./aa/bb/.
./aa/bb/..
./aa/bb/cc.txt
./aa/bb/dd.txt
./aa/bb/ee.txt
./aa/bb/ff.txt
./aa/bb/gg.txt
./aa/bb/hh.txt

10、文件整体操作

touch("./aa.txt"); //创建文件
copy("./aa.txt","../aa.txt"); //复制文件
unlink("./aa.txt"); //删除文件

11、文件内容操作

echo file_get_contents("http://www.baidu.com"); //读取文件
file_put_contents("./aa/bb/hh.txt","hello"); //写内容
readfile("./11.txt"); //读取并输出
var_dump(file("11.txt")); //读取文件内容,返回数组,每行是一个元素

  

//打开文件
$f = fopen("./11.txt","a");
//打开文件并写入
fwrite($f,"wwwww"); //关闭文件
fclose($f);

  其中:r只读;r+读写;w写清空;w+读写;a写入文件末尾;a+读写;x创建并以写入打开;x+创建并以读写打开;加一个b代表可操作二进制文件(建议加)

利用遍历来计算文件夹下所有的个数

<?php

echo fileCount("./qiyezhan");

function fileCount($fname)
{
//该文件夹下所有文件数量
$sum = 0;
//判断给的是不是文件夹
if(is_dir($fname))
{
//打开文件夹
$dir = opendir($fname); while($wenjian = readdir($dir))
{
if($wenjian!="." &&$wenjian!="..")
{
//文件的完整路径
$furl = $fname."/".$wenjian;
if(is_file($furl))
{
$sum++;
}
else if(is_dir($furl))
{
//获取该文件夹下文件数量,累加
$sum = $sum + fileCount($furl);
}
} } //关闭文件夹
closedir($dir);
return $sum;
}
else
{
echo "给的文件夹不对";
}
} ?>

  利用遍历删除全部文件

<?php
ShanChu("./qiyezhan");
function ShanChu($fname)
{
if(is_dir($fname))
{
//在删除之前,把里面的文件全部删掉
$dir = opendir($fname);
while($dname = readdir($dir))
{
//必须加这一项,不然可能会将整个磁盘给删掉
if($dname!="." && $dname!="..")
{
$durl = $fname."/".$dname;
if(is_file($durl))
{
unlink($durl);
}
else
{
ShanChu($durl);
}
}
}
closedir($dir);
//删除该文件夹
rmdir($fname);
}
else
{
//如果是文件,直接删掉
unlink($fname);
}
} ?>

 

如何用PHP遍历文件数目 或删除目录下的全部文件?的更多相关文章

  1. linux下递归删除目录下所有exe文件---从删库到跑路篇

    linux下递归删除目录下所有exe文件 find . -name '*.exe' -type f -print -exec rm -rf {} \; (1) "." 表示从当前目 ...

  2. php删除目录下的所有文件和目录

    <?php /** * 递归实现删除目录下的所有的文件和文件夹 * @param $dir 要删除的目录 * @param bool $deleteRootToo 是否删除根目录 默认不删除 h ...

  3. 遍历并读取指定目录下的所有文件内容,写入Map集合然后输出在控制台和本地文件

    public class FileWrite { public static void main(String[] args) throws Exception { //封装数据源目录 File sr ...

  4. [linux]删除目录下的一类文件

    find 目录 -name "*.类型" | xargs rm -f 通过find命令,查找指定目录下的某一类型的文件.并通过管道传递给xargs,执行后面的rm -f命令. 最终 ...

  5. Java项目生成可执行jar包、exe文件以及在Windows下的安装文件

    1.如何通过eclipse将Java项目生成可执行jar包 首先把在eclipse下的java项目导出jar file 下一步 下一步 下一步 最后点击完成,便生成了可执行的jar文件.可以在刚刚选择 ...

  6. mysql数据恢复 根据旧备份的sql文件和当前data下的ibd文件恢复innodb引擎数据

    1.使用navicat fro mysql数据库工具进行恢复 2.将原有备份的sql文件导入数据库 3.新建一个空数据库 4将备份数据库的数据表复制到新建数据库(只复制表格式) 5.在命令行模式中 u ...

  7. MAC删除目录下的“.svn”文件的方法

    http://bbs.feng.com/read-htm-tid-7803070.html MAC删除目录的“.svn”文件:打开终端,进到所在的目录,然后出入一下代码find . -name &qu ...

  8. linux系统下find删除目录下除一文件外的所有文件

    /data/目录下有a.txt b.txt c.txt d.txt删除/data/目录下所有文件,保留b.txt两种方法:1.[root@xuegod62 ~]# find /data/ -type ...

  9. 负载均衡下的资源文件配置/多站点下的资源文件夹共享(Windows IIS)

    前言: 负载均衡用的是NLB,微软的方案不太靠谱,举个例子吧,AB两台服务器负载出C,如果用户访问访问C之后分配的是A,那么如果A挂了,是不会自动切换到B的.据说后来还有一种NLB的方案可以实现,也不 ...

随机推荐

  1. 早期练手:功能相对比较完善的 js 计算器

    第一次发博客,就先发一个自己早期,刚开始学前端时,用js写的一个计算器吧,计算功能比较少,只有 + - * / ,不过其他功能还是比较完善的,比如: 输出结果后,连续按"=",可以 ...

  2. 老李分享:https协议

    老李分享:https协议   最近我们看到很多站点使用 HTTPS 协议提供网页服务.通常情况下我们都是在一些包含机密信息的站点像银行看到 HTTPS 协议. 如果你访问 google,查看一下地址栏 ...

  3. Nodejs express 获取url参数,post参数的三种方式

    express获取参数有三种方法:官网实例: Checks route params (req.params), ex: /user/:id Checks query string params (r ...

  4. mysql视图 更新中的问题

    mysql view 类型 mysql的视图有三种类型:merge.temptable.undefined.如果没有ALGORITHM子句,默认算法是UNDEFINED(未定义的). 算法会影响MyS ...

  5. 彻底搞定C语言指针(精华版)

    1.语言中变量的实质 要理解C指针,我认为一定要理解C中“变量”的存储实质, 所以我就从“变量”这个东西开始讲起吧! 先来理解理解内存空间吧!请看下图: 内存地址→ 6 7 8 9 10 11 12 ...

  6. 36.java_exception_test

    package mytext1; class TZException extends Exception{ TZException(String str){ super(str); } public ...

  7. preg_*匹配的字符串长度限制问题以及nginx,php上传文件过大问题

    问题背景 使用插件上传高清图片,用的插件base64转码的,上传失败,接口提示:413 (Request Entity Too Large) 问题分析与解决  首先想到的是nginx和php的服务器配 ...

  8. SqlParameter参数类型为int32时候的传值陷阱

    前2天在使用SqlParameter传递参数的时候遇到一个小坑,这里分享一下. SqlParameter para=new SqlParameter("@IsDeleted",0) ...

  9. 《算法4》读书笔记 1.4 - 算法分析(Analysis of Algorithm)

    --------------------------- First priority is to make you code ** CLEAR and CORRECT, but PERFORMANCE ...

  10. iOS·UIKit & Foundation框架—Annotations & Category注解工具类