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 }