1 //遍历目录及文件 2 3 function myBianli($dirname){ 4 //1.打开 5 $dir = opendir($dirname); 6 //2.读取 7 while($filename = readdir($dir)){ 8 if($filename != '.' && $filename != '..'){ 9 //拼接路径 10 $path = $dirname.'/'.$filename; 11 if(is_dir($path)){ 12 echo '目录:<a href="?path='.$path.'">'.$path.'</a><hr/>'; 13 }else{ 14 echo '文件:'.$path.'<br/>'; 15 } 16 } 17 } 18 //3.关闭 19 closedir($dir); 20 } 21 22 //移动文件 23 24 <?php 25 //移动目录 26 //@param1:原路径 27 //@param2:目标路径 28 myReName('原路径','目标路径'); 29 function myReName($dirsrc,$dirto){ 30 //1.判断目标是否是目录 31 if(is_file($dirto)){ 32 echo '目标不是目录不能创建'; 33 return; 34 } 35 //2.判断目标目录是否存在 不存在则创建 36 if(!file_exists($dirto)){ 37 mkdir($dirto); 38 echo '创建目录:'.$dirto.'成功<br/>'; 39 } 40 //3.打开原目录 41 $dir = opendir($dirsrc); 42 //4.循环读取源目录 43 while($filename = readdir($dir)){ 44 //过滤点和点点 45 if($filename != '.' && $filename != '..'){ 46 //拼接源完整路径 47 $file1 = $dirsrc.'/'.$filename; 48 //拼接目标完整路径 49 $file2 = $dirto.'/'.$filename; 50 //判断源完整路径是否是目录 51 if(is_dir($file1)){ 52 //调用函数 53 myReName($file1,$file2); 54 }else{ 55 //是文件 56 rename($file1,$file2); 57 echo '移动文件:'.$file1.'成功<br/>'; 58 } 59 } 60 } 61 //5.关闭源目录 62 closedir($dir); 63 //6.删除源目录 64 rmdir($dirsrc); 65 } 66 67 //统计目录大小 68 69 <?php 70 $size = dirsize('./daye'); 71 echo $size.'<hr/>'; 72 $s = tosize($size); 73 echo $s.'<br/>'; 74 function dirsize($dirname){ 75 //统计目录大小 76 $total = 0; 77 //1.打开目录 78 $dir = opendir($dirname); 79 //2.循环读取 80 while($filename = readdir($dir)){ 81 //2.1过滤掉点和点点 82 if($filename != '.' && $filename != '..'){ 83 //2.2拼接完整路径 84 $path = $dirname.'/'.$filename; 85 //2.3是文件还是目录 86 if(is_dir($path)){ 87 $total += dirsize($path); 88 }else{ 89 $total += filesize($path); 90 } 91 } 92 } 93 //3.关闭目录 94 closedir($dir); 95 return $total; 96 } 97 98 function tosize($size){ 99 if($size > pow(1024,3)){ 100 $dw = 'GB'; 101 $size = round($size/pow(1024,3),2); 102 }elseif($size > pow(1024,2)){ 103 $dw = 'MB'; 104 $size = round($size / pow(1024,2),2); 105 }elseif($size > 1024){ 106 $dw = 'KB'; 107 $size = round($size / 2014,2); 108 }else{ 109 $dw = 'byte'; 110 } 111 return $size.$dw; 112 } 113 /* 114 1024byte = 1kb 115 1024kb = 1mb 116 1024mb = 1GB 117 */ 118 119 //统计数量 120 121 <?php 122 $dirnum = 0; 123 $filenum = 0; 124 total('目录路径',$dirnum,$filenum); 125 echo '目录数:'.$dirnum; 126 echo '<br/>文件数:'.$filenum; 127 //统计目录和文件个数 128 function total($dirname,&$dirnum,&$filenum){ 129 //1.打开目录 130 $dir = opendir($dirname); 131 //2.循环读取目录 132 while($filename = readdir($dir)){ 133 // 2.1过滤掉点和点点 134 if($filename != '.' && $filename != '..'){ 135 // 2.2拼接完整路径 136 $path = $dirname.'/'.$filename; 137 // 2.3判断是否是目录 138 if(is_dir($path)){ 139 //调用自己 140 total($path,$dirnum,$filenum); 141 $dirnum ++; 142 }else{ 143 //不是目录 是文件 144 $filenum ++; 145 } 146 } 147 } 148 //3.关闭目录 149 closedir($dir); 150 }