前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >PHP统计目录总大小、文件和子目录个数

PHP统计目录总大小、文件和子目录个数

作者头像
苦咖啡
发布于 2018-04-28 06:41:29
发布于 2018-04-28 06:41:29
1.6K00
代码可运行
举报
文章被收录于专栏:我的博客我的博客
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
php 
function getDirectorySize($path)
{
  $totalsize = 0;
  $totalcount = 0;
  $dircount = 0;
  if ($handle = opendir ($path))
  {
    while (false !== ($file = readdir($handle)))
    {
      $nextpath = $path . '/' . $file;
      if ($file != '.' && $file != '..' && !is_link ($nextpath))
      {
        if (is_dir ($nextpath))
        {
          $dircount++;
          $result = getDirectorySize($nextpath);
          $totalsize += $result['size'];
          $totalcount += $result['count'];
          $dircount += $result['dircount'];
        }
        elseif (is_file ($nextpath))
        {
          $totalsize += filesize ($nextpath);
          $totalcount++;
        }
      }
    }
  }
  closedir ($handle);
  $total['size'] = $totalsize;
  $total['count'] = $totalcount;
  $total['dircount'] = $dircount;
  return $total;
}
 
function sizeFormat($size)
{
    $sizeStr='';
    if($size<1024)
    {
        return $size." bytes";
    }
    else if($size<(1024*1024))
    {
        $size=round($size/1024,1);
        return $size." KB";
    }
    else if($size<(1024*1024*1024))
    {
        $size=round($size/(1024*1024),1);
        return $size." MB";
    }
    else
    {
        $size=round($size/(1024*1024*1024),1);
        return $size." GB";
    }
 
}
 
$path="D:/wamp/www/bak/tools";
$ar=getDirectorySize($path);
 
echo "路径 : $path";
echo "目录大小 : ".sizeFormat($ar['size'])."
";
echo "文件数 : ".$ar['count']."
";
echo "目录术 : ".$ar['dircount']."
";
 
//print_r($ar);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015年4月1日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PHP 字符串与文件操作
字符串比较(字节序): 字节序比较可以使用strcmp/strcasecmp两个函数,只需传入两个字符串即可.
微软技术分享
2022/12/28
8040
PHP递归实现文件夹的复制、删除、查看大小操作示例
本文实例讲述了PHP递归实现文件夹的复制、删除、查看大小操作。分享给大家供大家参考,具体如下:
用户8449980
2021/07/13
1K0
PHP操作文件目录,已封装30个常用方法,共享!
06.@desc 判断 文件/目录 是否可写(取代系统自带的 is_writeable 函数)
程序猿的栖息地
2022/04/29
9310
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
本文实例讲述了PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法。分享给大家供大家参考,具体如下:
用户8449980
2021/07/13
6730
PHP对目录下的子目录及文件进行压缩并解压
创建压缩类文件 zip.php <?php class Zip{ /** * Zip a folder (include itself). * Usage: * Zi
Action
2021/05/07
1.8K0
PHP对目录下的子目录及文件进行压缩并解压
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
本文实例讲述了PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法。分享给大家供大家参考,具体如下: 前面一篇 PHP递归实现文件夹的复制、删除、查看大小操作 分析了递归操作使用技巧,这里再来分析一下迭代的操作技巧。 “既然递归能很好的解决,为什么还要用迭代呢”?主要的原因还是效率问题…… 递归的概念是函数调用自身,把一个复杂的问题分解成与其相似的多个子问题来解决,可以极大的减少代码量,使得程序看起来非常优雅。 由于系统要为每次函数调用分配运行空间,并使用压栈予以记录。在函数调用结束后,系统需要释放空间,并弹栈恢复断点。所以递归的消耗还是比较大的。 即使语言设计时已经将函数调用优化的极度完美,达到可以忽略递归造成的资源浪费,但是递归的深度仍然会受到系统栈容量的限制,否则将会抛出 StackOverflowError 错误。 而迭代能很好的利用计算机适合做重复操作的特点,并且从理论上说,所有的递归函数都可以转换为迭代函数,所以尽量能不用递归就不用递归,能用迭代代替就用迭代代替。 查看文件夹大小 迭代的思路是让计算机对一组指令进行重复执行,在每次执行这组指令时,都从变量的原值推出其它的新值……重复这一过程直到达到结束条件或没有新值产生。 由于递归相当于循环加堆栈,所以可以在迭代中使用堆栈来进行递归和迭代的转换。
用户2323866
2021/06/29
7260
PHP递归实现文件夹的复制、删除、查看大小操作示例
本文实例讲述了PHP递归实现文件夹的复制、删除、查看大小操作。分享给大家供大家参考,具体如下: PHP虽然提供了 filesize、copy、unlink 等文件操作的函数,但是没有提供 dirsize、copydir、rmdirs 等文件夹操作的函数(rmdir也只能删除空目录)。所以只能手动编写这些函数,主要的技巧是通过递归将问题逐层分解,直到分解成可以直接解决的最小子问题。 查看文件夹大小 由于文件夹是没有大小的,平常所说的文件夹尺寸准确的说应该是文件夹中所有文件的总大小。所以只需要将文件夹逐层查找,统计每一层所包含的文件大小,最后将结果从最深的文件夹返回合并。
用户2323866
2021/06/29
8960
PHP 文件相关函数
本文介绍了 PHP 文件的相关函数。本文只是部分列举,详情请查看官方文档。 官方文档:http://php.net/manual/zh/book.dir.php 官方文档:http://php.net/manual/zh/book.filesystem.php 执行命令所在路径 getcwd() 文件所在路径 __FILE__ 文件所在目录路径 新的 __DIR__ 旧的 dirname(__FILE__) 目录相关函数 resource opendir ( string $path [, resource
康怀帅
2018/02/28
1.4K0
PHP unlink与rmdir删除目录及目录下所有文件实例代码
在php中删除文件与目录其实很简单只要两个函数一个是unlink一个rmdir函数,如果要实现删除目录及目录下的文件我们需要利用递归来操作.
用户8675788
2021/07/13
1.5K0
PHP 开发基础知识笔记
设置Cookie登录: 基于Cookie设置实现的用户登录模块,清空与设置Cookie选项.
微软技术分享
2022/12/28
1.8K0
php创建多级目录完整封装类操作方法
public function create_dir($dir,$mode=0777) { return is_dir($dir) or ($this->create_dir(dirname($dir)) and mkdir($dir, $mode)); }
用户2323866
2021/06/30
6590
php面试笔记(7)-php基础知识-文件及目录处理考点
在面试中,考官往往喜欢基础扎实的面试者,而文件及目录处理相关的考点,往往是大家容易忽视的一个点,今天冷月就来帮各位小伙伴们梳理一下,在面试中文件及目录处理相关的注意点。
学长冷月
2020/08/02
7030
8个 PHP 开发常用代码片段
1. 压缩 zip 文件 使用下面的 PHP 片段可以即时压缩 zip 文件 function create_zip($files = array(),$destination = '',$overwrite = false) { //if the zip file already exists and overwrite is false, return false if(file_exists($destination) && !$overwrite) { return fals
程序猿的栖息地
2022/04/29
3550
文库系统是如何在windows环境中将office文件转换成pdf或图片的?
最近在做一个文库网站项目,需要让文档能在网页中预览。 在网页上能预览,需要实现word文件转pdf, ppt文件转图片。
用户4707279
2023/12/07
4030
文库系统是如何在windows环境中将office文件转换成pdf或图片的?
简明PHP进阶【6-目录处理】
上一节我们讲了在PHP中操作文件,但假设我们需要按日期创建日志目录,按用户创建上传图片等,我们是不是得先建立分类目录呢?在实际的开发过程中,操作目录也是我们需要掌握的。今天就来说说PHP中目录的处理。
Lemon黄
2019/10/08
4380
简明PHP进阶【6-目录处理】
使用Perl的File::Path模块删除非空文件夹
不过那个只是针对单个的文件,使用unlink方法就可以了(未测试过只读文件删除的情况- -!),那如果要删除指定的一个文件夹,有三种方案:
meteoric
2018/11/15
1.3K0
php 遍历目录树 (包含空文件夹列表 + 仅有文件列表)
躺平程序员老修
2023/09/05
2240
学习PHP中的目录操作
对于编程语言来说,文件和目录的操作是其最最基础的功能。就像我们日常中最常见的图片上传、文件上传之类的功能,都需要文件和目录操作的支持。今天我们先来简单地学习一下 PHP 中关于目录操作的一些类和函数。
硬核项目经理
2021/03/16
9140
【DELL】戴尔笔记本PE下没有硬盘解决方法
德宏大魔王
2023/08/08
3720
【DELL】戴尔笔记本PE下没有硬盘解决方法
基于PHP常用文件函数和目录函数整理
string basename ( string $path [, string $suffix ] ) //给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。
用户2323866
2021/06/30
7230
推荐阅读
相关推荐
PHP 字符串与文件操作
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验