喜悦国际村 » 喜悦原创 » 文件夹树型结构 && 文件夹概况

页: [1]
goodlook2006-7-5 02:56 AM
文件夹树型结构 && 文件夹概况

第一个适用于文件比较少的目录相看情况,第二个适用于文件特别多(我的8W多个文件的目录,用第一个不被执行,呵呵)

用法:将文件放入想查看信息的文件夹根目录,执行即可。也可在程序内设置目录路径。
因为比较简单,就没有写说明。

记不得是什么时候写的了,这几天用着了,改了一点点,顺便发出来。
附件中是两个文件打包。



文件夹树型结构

[php]
/*****************************************************
* 原文转载请保留以下信息:)
* 中文名        : 文件夹树型结构
* 版权          : [url]www.homesee.cn[/url]
* 文件名            : dir.php
* 作者          : StartMenu (QQ:4681411,msn:moneyease@msn.com)
* 功能                    : 文件夹详情
* 制作          : 200-7-5
* 广告          : 特价优质虚拟主机代理: [url]http://www.hostme.cn[/url]
*****************************************************/

error_reporting(2047);


$a = new haosee_dir;
$a->d='./';
$a->show();

$d=$a->dir_file;
show_dir($d);




function show_dir($ds,$t='|--'){
        for($i=0;$i<count($ds);$i++){
                $d=$ds[$i];
                if($d['type']=='dir'){
                        echo $t.$d['name']."[size=".show_size($d['size'])."][time=".date('Y-m-d H:i:s',$d['time'])."][dir_num=".$d['dir_num']."][file_num=".$d['file_num']."]<br>";
                        $info=$d['info'];
                        show_dir($info,"|     ".$t);
                }
                elseif($d['type']=='file'){
                        echo $t.$d['name']."[size=".show_size($d['size'])."][time=".date('Y-m-d H:i:s',$d['time'])."]<br>";

                }
        }
}


class haosee_dir{
        var $d;
        var $dir_file=array();
        function show(){
                return $this->dir_file[]=$this->read_dir($this->d);
        }
        function read_dir($dir){
                 $f_d_num=0;
                 $f_f_num=0;
                 $f_size=0;
                 if(@is_dir($dir)) $f_type='dir';
                 elseif(@is_file($dir)) $f_type='file';
                 $handle = @opendir($dir);

         while ($file = @readdir ($handle)){
             if (@eregi("^\.{1,2}$",$file)){
                 continue;
             }
                         $t_file=$dir.'/'.$file;

                         unset($f_a);
                         $f_a['name']=$file;
                         if( @is_dir($t_file) ){
                                 $f_a['type']='dir';
                                 $n_dir_info=$this->read_dir($t_file);
                                 $f_a['size']=$n_dir_info['size'];
                                 $f_a['time']=@filemtime($t_file);
                                 $f_a['dir_num']=$n_dir_info['dir_num'];
                                 $f_a['file_num']=$n_dir_info['file_num'];
                                 $f_a['info']=$n_dir_info['info'];
                                 $f_d_num++;
                         }
                         elseif(is_file($t_file)){
                                 $f_a['type']='file';
                                 $f_a['size']=@filesize($t_file);
                                 $f_a['time']=@filemtime($t_file);
                                 $f_f_num++;
                         }
                         $f_size+=$f_a['size'];
             $f[]= $f_a;
         }
         @closedir($handle);
                 $dirx=@explode('/',$dir);
                 $f_f['name']=$dirx[count($dirx)-1];
                 unset($dirx);
                 $f_f['type']=$f_type;
                 $f_f['size']=$f_size;
                 $f_f['time']=@filemtime($dir);
                 $f_f['dir_num']=$f_d_num;
                 $f_f['file_num']=$f_f_num;
                 $f_f['info']=$f;
                 return $f_f;
        }
}


function show_size($size){
        return         $size=
        ($size<1024?$size.'B':
        ($size<1024*1024?number_format($size/1024,2).'KB':
        ($size<1024*1024*1024?number_format($size/1024/1024,2).'MB':
        number_format($size/1024/1024/1024,2).'GB')));
}
[/php]

文件夹概况


[php]
/*****************************************************
* 原文转载请保留以下信息:)
* 中文名        : 文件夹概况
* 版权          : [url]www.homesee.cn[/url]
* 文件名            : dirinfo.php
* 作者          : StartMenu (QQ:4681411,msn:moneyease@msn.com)
* 功能                    : 文件夹详情
* 制作          : 200-7-5
* 广告          : 特价优质虚拟主机代理: [url]http://www.hostme.cn[/url]
*****************************************************/

error_reporting(2047);



$a = new haosee_dir;
$a->d='./';
$a->show();
$d=$a->dir_file;


echo '本文件夹下共<font color=red>'.$d[0]['dir_num'].'</font>个文件夹,<font color=red>'.$d[0]['file_num'].'</font>个文件,共计<font color=red>'.show_size($d[0]['size']).'</font>';

class haosee_dir{
        var $d;
        var $dir_file=array();
        function show(){
                return $this->dir_file[]=$this->read_dir($this->d);
        }
        function read_dir($dir){
                 $f_d_num=0;
                 $f_f_num=0;
                 $f_size=0;
                 $handle = @opendir($dir);
         while ($file = @readdir ($handle)){
             if (@eregi("^\.{1,2}$",$file)){
                 continue;
             }
                         $t_file=$dir.'/'.$file;
                         unset($f_a);
                         if( @is_dir($t_file) ){
                                 $n_dir_info=$this->read_dir($t_file);
                                 $f_a['size']=$n_dir_info['size'];
                                 $f_a['dir_num']=$n_dir_info['dir_num'];
                                 $f_a['file_num']=$n_dir_info['file_num'];
                                 $f_d_num+= $f_a['dir_num'];
                                 $f_f_num+=$f_a['file_num'];
                                 $f_d_num++;
                         }
                         elseif(@is_file($t_file)){
                                 $f_a['size']=@filesize($t_file);
                                 $f_f_num++;
                         }
                         $f_size+=$f_a['size'];
         }
         @closedir($handle);
                 $f_f['size']=$f_size;
                 $f_f['dir_num']=$f_d_num;
                 $f_f['file_num']=$f_f_num;
                 return $f_f;
        }
}


function show_size($size){
        return         $size=
        ($size<1024?$size.'B':
        ($size<1024*1024?number_format($size/1024,2).'KB':
        ($size<1024*1024*1024?number_format($size/1024/1024,2).'MB':
        number_format($size/1024/1024/1024,2).'GB')));
}
[/php]

[[i] 本帖最后由 goodlook 于 2006-7-5 11:07 AM 编辑 [/i]]

goodlook2006-7-5 03:09 AM
不好意见,2006-7-5 11:07 AM  之前发的有一点点小问题,现在修复了

LuckLrj2006-7-5 03:13 AM
支持一个。

qh6632006-7-5 06:33 AM
很好,支持一下。:D
不知道将@eregi("^\.{1,2}$",$file换成$file !== '.' AND $file !== '..'效率会不会高一点?:)

sq12282006-7-6 02:50 AM
好同志啊~~,支持!!

kigpub2006-7-6 08:55 AM
有没有执行后的效果页面看看??

哪位高人发一个图上来看看?

wuminghuo2006-7-9 05:56 AM
不错不错,学习学习

goodlook2006-7-21 04:57 AM
[quote]原帖由 [i]qh663[/i] 于 2006-7-5 02:33 PM 发表
很好,支持一下。:D
不知道将@eregi("^\.{1,2}$",$file换成$file !== '.' AND $file !== '..'效率会不会高一点?:) [/quote]

是的,大家可以自行修改一下,我就不去改原贴和附件了。

tl842006-8-29 06:10 AM
挺好的东西!


查看完整版本: 文件夹树型结构 && 文件夹概况


Powered by Discuz! Archiver 6.1.0  © 2001-2006 Comsenz Inc.
Processed in 0.006863 second(s), 2 queries