//会把所有的文件放到引用的那个数组中
function myscandir($dirname,&$arr_files) { $arr = array(); $dir=opendir($dirname); while($filename=readdir($dir)){ $file=$dirname."/".$filename; if($filename!="." && $filename!=".."){ if(is_dir($file)){ myscandir($file,$arr_files); //递归完成 }else{ $arr_files[] = $file; } } } closedir($dir); } $arr_files = array(); myscandir('/www/web/test',$arr_files); print_r($arr_files);
//求目录大小
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+=dirsize($file); //递归完成
}else{
$dirsize+=filesize($file);
}
}
}
closedir($dir);
return $dirsize;
}
$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+=dirsize($file); //递归完成
}else{
$dirsize+=filesize($file);
}
}
}
closedir($dir);
return $dirsize;
}