当前位置: 首页 > news >正文

php文件遍历

  

<?php


  $dirname="shangchuan/uploads"; 

  echo $dirname."共计大小为:".toSize(dirsize($dirname))."<br>";

  $dir=opendir($dirname); //打开文件目录

  while($fileName=readdir($dir)){   //开始遍历每一个文件
    if($fileName!="." && $fileName!=".."){  //去掉开始的本个文件夹和上层文件夹
      $file=$dirname.'/'.$fileName;    
      if(is_dir($file)){
        echo "<font color='red'>".$fileName."---".date("Y-m-d H:i:s")."---".filectime($file)."---".filetype($file)."---".toSize(dirsize($file))."---</font><br>";
      }else{
        echo "<font color='blue'>".$fileName."---".date("Y-m-d H:i:s")."---". filectime($file)."---".filetype($file)."---".toSize(filesize($file))."---</font><br>";
      }
    }
  }


  closedir($dir);
  //转换字节为常用单位
  function toSize($size){
    $dw="Bytes";
    if($size > pow(2,30)){
      $size=round($size/pow(2,30),2);
      $dw="GB";
    }else if($size > pow(2,20)){
      $size=round($size/pow(2,20),2);
      $dw="MB";
    }else if($size > pow(2,10)){
      $size=round($size/pow(2,10),2);
      $dw="KB";
    }else{
      $dw="bytes";
    }
    return $size.$dw;
  
  }
  //遍历目录计算大小
  function dirsize($dirname){
    $dirsize=0;

    $dir=opendir($dirname);

    while($filename=readdir($dir)){
      $file=$dirname."/".$filename;
      if($filename!="." && $filename!=".."){
        if(is_dir($file)){
          dirsize($file);//递归完成
        }else{
          $dirsize+=filesize($file);
        }
      }
    }

    closedir($dir);
    return $dirsize;
  }

?>

转载于:https://www.cnblogs.com/yiluxiuxing/p/4068378.html

相关文章:

  • 如何让开机时,电脑用户自动登录?
  • 控制台登录,提示证书错误
  • 不高兴的小明
  • iis浏览网页时提示无法显示 XML 页
  • mvc和三层架构到底有什么区别
  • Java代码Bug分析插件 FindBugs
  • 网址
  • CSharp学习视频分享与开发技术QQ交流群
  • Docker如何管理数据
  • ORA-02050故障诊断一例
  • 初次体验百度eCharts遇到的问题和解决方法
  • Swoole 实例四(心跳检测)
  • AssemblyInfo.cs文件的作用
  • JS设计模式一:单例模式
  • std::vectorChannel2* m_allChannels;容器,以及如何根据channelid的意义
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • Android Studio:GIT提交项目到远程仓库
  • E-HPC支持多队列管理和自动伸缩
  • Laravel 实践之路: 数据库迁移与数据填充
  • React-生命周期杂记
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • TypeScript实现数据结构(一)栈,队列,链表
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 从0到1:PostCSS 插件开发最佳实践
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 分布式任务队列Celery
  • 面试遇到的一些题
  • 排序算法学习笔记
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 译米田引理
  • Java性能优化之JVM GC(垃圾回收机制)
  • 阿里云服务器购买完整流程
  • 函数计算新功能-----支持C#函数
  • # Java NIO(一)FileChannel
  • (11)MATLAB PCA+SVM 人脸识别
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (规划)24届春招和25届暑假实习路线准备规划
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • .gitattributes 文件
  • .NET Core 中插件式开发实现
  • .Net mvc总结
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • .Net语言中的StringBuilder:入门到精通
  • .Net转前端开发-启航篇,如何定制博客园主题
  • ::前边啥也没有
  • @RequestMapping用法详解
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • [20190401]关于semtimedop函数调用.txt
  • [BZOJ] 3262: 陌上花开
  • [C++]STL之map
  • [CC2642r1] ble5 stacks 蓝牙协议栈 介绍和理解
  • [CF494C]Helping People
  • [Excel] vlookup函数