页:
[1]
| goodlook | 2006-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]] |
| goodlook | 2006-7-5 03:09 AM |
|
| 不好意见,2006-7-5 11:07 AM 之前发的有一点点小问题,现在修复了 |
|
很好,支持一下。:D
不知道将@eregi("^\.{1,2}$",$file换成$file !== '.' AND $file !== '..'效率会不会高一点?:) |
|
有没有执行后的效果页面看看??
哪位高人发一个图上来看看? |
| wuminghuo | 2006-7-9 05:56 AM |
|
| 不错不错,学习学习 |
| goodlook | 2006-7-21 04:57 AM |
|
[quote]原帖由 [i]qh663[/i] 于 2006-7-5 02:33 PM 发表
很好,支持一下。:D
不知道将@eregi("^\.{1,2}$",$file换成$file !== '.' AND $file !== '..'效率会不会高一点?:) [/quote]
是的,大家可以自行修改一下,我就不去改原贴和附件了。 |
Powered by Discuz! Archiver 6.1.0
© 2001-2006 Comsenz Inc.
Processed in 0.006863 second(s), 2 queries |