php 递归求得目录大小

    /*
    *    递归求得目录大小
    *    @param  $dir  目录
    */
    function dirsize($dir){
        $allsize = 0;
        $handle = opendir($dir);
        while($file = readdir($handle)){
            if($file != ‘.‘ && $file != ‘..‘){
                $file = $dir . ‘/‘ . $file;
                if(is_dir($file)){
                    $allsize += dirsize($file);
                }else{
                    $allsize += filesize($file);
                }
            }

        }
        return $allsize;
    }
时间: 2024-10-23 21:03:43

php 递归求得目录大小的相关文章

PHP文件操作 之统计目录大小

<?php //定义一个函数 统计目录大小函数 function dirSize($dirName) { //判断目录是否存在 if (!file_exists($dirName)) { die('目录不存在!'); } //判断是否是目录 if (!is_dir($dirName)) { die('您所遍历的不是目录!'); } //打开目录 $d = opendir($dirName); //判断打开目录是否成功 if (!$d) { die('打开目录失败!'); } //读取目录 whi

二叉树的先序遍历和后序遍历的应用--输出文件和统计目录大小

一,介绍 本文主要二叉树的两种基本的典型应用: 1) 输出某个文件夹下所有文件名称(可以有子文件夹)---用先序遍历实现 2) 统计某个文件夹的大小(该文件夹下所有文件的大小--用后序遍历实现 二,实现分析 对于问题 1),输出文件名称的过程如下: 如果是文件夹,先输出文件夹名,然后再依次输出该文件夹下的所有文件(包括子文件夹),如果有子文件夹,则再进入该子文件夹,输出该子文件夹下的所有文件名.这是一个典型的先序遍历过程. 对于问题2),统计文件夹的大小过程如下: 若要知道某文件夹的大小,必须先

使用php递归计算目录大小

统计一个目录大小,因为不知道目录中子目录的深度,所以for循环很难实现,但是用递归调用很容易实现,只要统计出一个目录中所有文件的大小,那么每一次调用就可以了,随便建了个目录,建立一些文件,方法代码如下: 1 function dirsize($dirname){ 2 static $sum=0; //静态变量,防止每次递归置零 3 $handle=opendir($dirname); 4 while(($item=readdir($handle))!==false){ 5 if($item!='

Python递归遍历目录下所有文件

#自定义函数: import ospath="D:\\Temp_del\\a" def gci (path): parents = os.listdir(path) for parent in parents: child = os.path.join(path,parent) #print(child) if os.path.isdir(child): gci(child) # print(child) else: print(child) gci(path) #使用os.walk方

(实用篇)PHP不用递归遍历目录下所有文件的代码

<?php /** * PHP 非递归实现查询该目录下所有文件 * @param unknown $dir * @return multitype:|multitype:string */ function scanfiles($dir) { if (! is_dir ( $dir )) return array (); // 兼容各操作系统 $dir = rtrim ( str_replace ( '\\', '/', $dir ), '/' ) . '/'; // 栈,默认值为传入的目录 $

利用zabbix监控某个目录大小

近期,因为JMS的消息堆积导致ApacheMQ频率故障(消息没有被消费掉,导致其数据库达到1.2G,JMS此时直接挂掉),很是郁闷!刚好自 己在研究zabbix.既然zabbix如此强大,那么它可以监控我的这个目录大小吗?在网上找了很久之后,没有结果. 此时,想起了这前导入的其他模版,于是决定修改模版,改着改着又出问题!但是思路已经有了.于是有了本文. 有了需求,可以直接开工了!为了方便记忆,我会写详细的步骤. 需求: 要监控/usr/local/activemq5.5/data/kahadb

递归读取目录内容

$path='E:/wamp/phplianxi/';$nested_list = readDirSNested($path, 0);echo '<pre>';var_dump($nested_list);/** * 递归读取目录内容 * @param string $path 需要读取的目录内容 * @return void */function readDirSNested($path) { $nested = array();//存储当前目录下所有内容 $handle = opendir

PHP遍历目录返回统计目录大小实例

分享一个 PHP遍历目录并返回统计目录大小的方法.代码: <?php $dirname = "test1"; //mkdir($dirname); //遍历一层目录 function listdir($dirname) { $ds = opendir($dirname); while($file = readdir($ds)) { $path = $dirname.'/'.$file; if(is_dir($file)) { echo "DIR:".$file

关于服务器各用户的家目录大小限制方案

关于服务器各用户的家目录大小限制 方法1-把磁盘重新规划.格式分区,再用quota进行磁盘配额限制,再针对每个对应的家目录进行挂载使用. 缺点:由于公司这边的磁盘采用的不是LVM逻辑卷管理,所以不能自由裁剪,这种方法相当于重新分区,一但分区后,大小就固定了,以后就不能更改了!  不建议使用 方法2-使用dd命令,撑大一个文件比如说(500G),然后把原来home下用户家目录如(denghuayi)里面的资料全部剪切到另外一个文件夹,然后再把这个文件挂载到家目录下,再把原来的资料复制回来. 缺点: