1. 遍历并打印指定目录下所有文件

<?php
//功能:遍历并打印指定目录下所有文件function scan_dir($dir_name,$dir_flag=1) {static $FILE_COUNT=1;                //记录文件数目 初值为1 目录名称不记$FILE_COUNT--;                       //每调用一次scan_dir()函数自减1@$dir_handle=opendir($dir_name);     //抑制错误信息显示  便于自定义错误显示if(!$dir_handle)die("目录打开错误!");while(false!==($filename=readdir($dir_handle)))  //文件名为‘0’时,readdir返回 FALSE,判断返回值是否不全等{                                   $flag=$dir_flag;                 //古怪的 is_dir($filename) ! $filename这个路径必须能够寻到!当$filename不存在或者不是目录时返回falseif($filename!='.'&&$filename!='..'){$FILE_COUNT++;                   //不记录当前路径和上一级路径while($flag>0&&--$flag)          //负数仍为真echo '&nbsp';if(is_dir($dir_name.$filename))  //判断 是否为一个目录{echo '<strong>'."<a href=".$dir_name.$filename.">".$filename."</a></strong><br>";scan_dir($dir_name.$filename.'/',$dir_flag+1);      //$dir_flag标志目录树层次}else {echo "<a href=".$dir_name.$filename.">".$filename."</a><br>";}}}closedir($dir_handle);                 //关闭目录句柄echo "文件总数:".$FILE_COUNT.'<br>';
}scan_dir('D:/AppServ/www/mytest/shopping/payment/');

/*总结:
1,关于路径 目录的路径末尾都加上 '/' 以便后面与文件名字符串连接 形成新的 路径字符串
2,目录遍历  这是一个关于树的问题
3,is_dir()函数第一个参数必须是一个能够识别的PATH否则会因目录不存在而返回一个false容易误解
得出 “这不是一个目录”的错误结论  形成逻辑上的错误
4,注意当前路径'.'和上一级路径'..'的剔除  否则 在递归环节造成死循环  直至内存耗尽出错。
5,dir_flag这个变量是记录树的深度 以便于目录分级分层输出                               */
/*不足
1,输出排版不完善
2,逻辑与表示层混乱  不分明  大忌!
3,面向过程
*/

单目录

// 列出目录内容 $dir 不要加 '/'
function list_files($dir)
{if(is_dir($dir)){if($handle = opendir($dir)){while(($file = readdir($handle)) !== false){if($file != "." && $file != ".." && $file != "Thumbs.db"){echo '<a href="'.$dir.'/'.$file.'">'.$file.'</a><br>'."\n";}}closedir($handle);}}
}list_files('D:/AppServ/www/mytest/shopping/payment');

2. PHP 获得文件夹大小 计算文件

<?phpfunction getDirSize($dir)
{$handle = opendir($dir);while (false!==($FolderOrFile = readdir($handle))){if($FolderOrFile != "." && $FolderOrFile != ".."){if(is_dir("$dir/$FolderOrFile")){$sizeResult += getDirSize("$dir/$FolderOrFile");}else{$sizeResult += filesize("$dir/$FolderOrFile");}}   }closedir($handle);return $sizeResult;
}//单位自动转换函数
function getRealSize($size)
{$kb = 1024;          //Kilobyte$mb = 1024 * $kb;    //Megabyte$gb = 1024 * $mb;    //Gigabyte$tb = 1024 * $gb;    //Terabyteif($size < $kb){return $size." B";}else if($size < $mb){return round($size/$kb,2)." KB";}else if($size < $gb){return round($size/$mb,2)." MB";}else if($size < $tb){return round($size/$gb,2)." GB";}else{return round($size/$tb,2)." TB";}
}echo getRealSize(getDirSize('D:/AppServ/www/mytest/'));// get byte
function dirsize($dir)
{$handle=opendir($dir);$size = 0;while ( $file=readdir($handle) ){if ( ( $file == "." ) || ( $file == ".." ) ) continue;if ( is_dir("$dir/$file") )$size += dirsize("$dir/$file");else$size += filesize("$dir/$file");}closedir($handle);return $size;
}$big=dirsize(dirname($_SERVER['SCRIPT_FILENAME'])."/");
echo '('.$big.' bytes)';

计算文件大小用 filesize()

http://www.w3school.com.cn/php/func_filesystem_filesize.asp

遍历文件夹下所有文件,编辑删除

php 操作文件夹 (遍历 计算大小)相关推荐

  1. 递归实现显示目标文件夹的所有文件和文件夹,并计算目标文件夹的大小

    递归的一个典型应用就是遍历目标文件夹,把该文件夹下的所有文件和文件夹打印或显示出来,还可以递归计算目标文件夹的总大小. 1: class Program 2: { 3: static void Mai ...

  2. Android SDCard操作(文件读写,容量计算)

    Android SDCard操作(文件读写,容量计算) android.os.Environment 提供访问环境变量 java.lang.Object android.os.Environment ...

  3. 查看服务器所有文件大小,查看服务器文件夹下内存大小

    查看服务器文件夹下内存大小 内容精选 换一换 已创建全景分析任务,并且成功完成分析.展开节点列表.可单击右上角的按钮下载全景分析数据.单击节点名称默认打开"总览 "页签,如图1所示 ...

  4. C#关于文件夹遍历以及文件拷贝

    C#关于文件夹遍历以及文件拷贝 using System; using System.Collections.Generic; using System.ComponentModel; using S ...

  5. debian 文件夹中文件大小_linux查看目录(文件夹)内容大小

    习惯Terminal没有不知道ls命令的(等同于DOS的dir),经常只是需要查看目录的内容大小,但ls -h显示的只是目录的本身大小,而且很多项内容 ls 在这方面的两个诟病出现了: 小诟1. 显示 ...

  6. HALCON教程-初步:文件夹遍历,文件筛选,文件名拆分,图片读取及保存

    [1]文件夹遍历 list_image_files ( : : ImageDirectory, Extensions, Options : ImageFiles) ImageDirectory: 文件 ...

  7. python操作文件夹-Python文件操作大全,随机删除文件夹内的任意文件

    在读文件的时候往往需要遍历文件夹,python的os.path包含了很多文件.文件夹操作的方法: os.path.abspath(path) #返回绝对路径 os.path.basename(path ...

  8. python文件夹遍历_Python练习6-文件遍历

    第 0005 题:你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小. 这道题主要用到文件遍历和图片处理的知识,由于图片处理之前已经学过了,所以新的知识点主要是文件遍历 ...

  9. 文件和文件夹的操作——文件夹的操作

    创建文件夹 创建文件夹主要使用Directory类的Create方法 private void button1_Click(object sender, EventArgs e) { FolderBr ...

最新文章

  1. Wijmo 更优美的jQuery UI部件集:运行时处理Wijmo GridView数据操作
  2. 第十五届全国大学生智能汽车竞赛 人工智能创意组总决赛
  3. VC使用HTTP协议下载文件
  4. Android开发经典笔试面试题汇总(持续更新中)
  5. Solidity 官方文档中文版 2_Ethereum 智能合约介绍
  6. 公众号发布代码最好的工具markdown语法
  7. powerdesigner 数据类型与数据库数据类型对应
  8. Python实战—CSDN自动登录及评论
  9. xp 游戏计算机没有了怎么办,我的xp系统没有自带游戏怎么办
  10. 常见电线电缆电阻的检测方法盘点
  11. 常用工具方法(7S,28,SWOT,PDCA,SMART,6W2H,时间管理四矩阵,WBS,碎石分析,ORID)
  12. Win11更新提示安装错误0x80248007怎么办?0x80248007下载错误解决方法汇总
  13. 芯片读取设备详解+U盘芯片flash读取分析实录_一篇看够
  14. 关于小学生学习编程语言C++的经历经验分享,五问五答
  15. 如何下载Twitter 数据副本?
  16. PDF中几个的空白页怎么删除?
  17. 九章量电子计算机诞生于,计算机应用基础统考题
  18. 住建部大力支持购买第一套住房,下降首付比、首套利率
  19. 邮件退信回执原因分析
  20. git 清除所有历史记录

热门文章

  1. 信息学奥赛C++语言: 数字三角形
  2. 机器学习常见损失函数
  3. 事务对性能影响_MySQL数据库性能优化史诗级大总结
  4. java secondtotime_Java中的LocalTime toSecondOfDay()方法
  5. linux内核那些事之E820
  6. 连接linux工具有哪些_推荐 10 个不错的网络监视工具,值得收藏
  7. css文本省略(······)行高错位(bug)- 解决办法
  8. axios跨域请求的qs用法 - qs安装篇
  9. 19秋学期南开c语言在线作业,南开19秋学期(1709、1803、1809、1903、1909)《C语言程序设计》在线作业满分答案1...
  10. 商业初创公司网站单页模板