<table cellspacing="0" cellpadding="0"><tr><td class="t_f" id="postmessage_65843"> <div class="blockcode"> <div id="code_C0n"><ol> <li> <li> <?php <li>//basename()</li> <li>返回路径中的文件名部分</li> <li>$path="D:/lamp/apache2/htdocs/file.php";</li> <li>echo basename($path)."<br>";</li> <li>//显示带有文件扩展名的文件名</li> <li>echo basename($path,'php')."<br>";</li> <li>//显示不带文件扩展名的文件名</li> <li>//dirname()</li> <li>去掉文件名,返回目录名</li> <li>echo dirname($path)."<br>";</li> <li>//返回目录名</li> <li>//pathinfo()</li> <li>返回一个关于路径属性的数组</li> <li>print_r(pathinfo($path))."<br>";</li> <li>//opendir()</li> <li>打开指定的目录</li> <li>//readdir()</li> <li>读取指定的目录</li> <li>//closedir()</li> <li>关闭指定的目录</li> <li>//rewinddir()</li> <li>倒回目录句柄</li> <li>/*</li> <li>*下面的代码来统计一个目录下的文件</li> <li>*/</li> <li>$num=0;</li> <li>//用来统计子目录和文件的总个数</li> <li>$dirname="pm3";</li> <li>//定义一个目录,即需要遍历的目录 </li> <li>$dir_handle=opendir($dirname);</li> <li>//打开目录</li> <li>//将遍历的内容和文件名使用表格格式输出</li> <li>echo "<table border="0" align="center" width="600" cellspacing="0" cellpadding="0">";<li>echo "<caption><h2>目录".$dirname."下的内容</h2></caption>";</li> <li>echo "<tr align="left" bgcolor="#cccccc">";<li>echo "<th>文件名</th> <th>文件大小</th> <th>文件类型</th> <th>修改时间</th> </li> </tr>";</li> <li>while($file=readdir($dir_handle)){</li> <li>//循环读取目录里的内容,知道最后</li> <li>$dirFile=$dirname."/".$file;</li> <li>//使用目录名和文件名链接起来,这样在下面的filetype当中才能使用</li> <li>if($num++%2==0){</li> <li>//通过单复数来实现隔行变色</li> <li>$bgcolor="#ffffff";</li> <li>}else{</li> <li>$bgcolor="#cccccc";</li> <li>}</li> <li>echo "<tr bgcolor='".$bgcolor."'>";<li>echo "<td>".$file."</td>";</li> <li>//输出文件名 </li> <li>echo "<td>".filesize($dirFile)."</td>";</li> <li>//输出文件大小 </li> <li>echo "<td>".filetype($dirFile)."</td>";</li> <li>//输出文件类型</li> <li>echo "<td>".filemtime($dirFile)."</td>";</li> <li>//输出文件的修改时间</li> <li>echo "</li> </tr>";</li> <li>}</li> <li>echo "</li> </table>";</li> <li>closedir($dir_handle);</li> <li>echo "<b>在目录".$dirname."下共有".$num."个文件</b><br>";</li> <li>//disk_free_space()</li> <li>disk_total_space() 统计磁盘大小</li> <li>/*</li> <li>*自定义一个递归函数,统计传入目录文件的大小</li> <li>*/</li> <li>function dirSize($directory){</li> <li>$dir_size=0;</li> <li>//定义一个整形的变量,用来累加每个文件的大小从而计算目录的大小</li> <li>if($dir_handle=opendir($directory)){</li> <li>//打开目录</li> <li>while($fileName=readdir($dir_handle)){</li> <li>//循环读取目录中的文件</li> <li>if($fileName!="." && $fileName!=".."){</li> <li>//一定要排除掉两个特殊的目录</li> <li>$subFile=$directory."/".$fileName;</li> <li>//将文件名和目录名连接</li> <li>if(is_dir($subFile)){</li> <li>//判断子文件是否是目录</li> <li>$dir_size+=dirSize($subFile);</li> <li>//如果是目录,继续向下循环</li> <li>}</li> <li>if(is_file($subFile)){</li> <li>//判断是否是普通文件</li> <li>$dir_size+=filesize($subFile);</li> <li>//获取文件的大小,并和前面的文件大小累加</li> <li>}</li> <li>}</li> <li>}</li> <li>}</li> <li>closedir($dir_handle);</li> <li>//关闭目录的句柄</li> <li>return $dir_size;</li> <li>}</li> <li>$dir_size=dirSize("pm3");</li> <li>echo "目录pm3的大小是:".round($dir_size/pow(1024,2),2)."MB";</li> <li>//输出目录的大小</li> <li>/*</li> <li>*自定义一个删除目录的递归函数</li> <li>*/</li> <li>//unlink()</li> <li>将目录中的文件删除掉</li> <li>function delDir($directory){</li> <li>if(file_exists($directory)){</li> <li>//判断目录是否存在</li> <li>if($dir_handle=opendir($directory)){</li> <li>//打开目录</li> <li>while($fileName=readdir($dir_handle)){</li> <li>//循环读取目录下的文件</li> <li>if($fileName!="." && $fileName!=".."){</li> <li>//一定要排除两个特殊文件,否则你会后悔的</li> <li>$subFile=$directory."/".$fileName;</li> <li>//把文件名和目录名连接起来</li> <li>if(is_dir($subFile)){</li> <li>//如果是目录,继续执行本身</li> <li>delDir($subFile);</li> <li>}</li> <li>if(is_file($subFile)){</li> <li>//如果是普通文件,直接删除</li> <li>unlink($subFile);</li> <li>}</li> <li>}</li> <li>}</li> <li>closedir($dir_handle);</li> <li>//关闭句柄 </li> <li>rmdir($directory);</li> <li>//运行到这的已经是空目录了,直接删除</li> <li>}</li> <li>}</li> <li>}</li> <li>//delDir("pm4");</li> <li>/*</li> <li>*自定义一个复制或移动目录的递归函数</li> <li>*/</li> <li>//copy()</li> <li>复制一个普通的文件</li> <li>//mkdir()</li> <li>创建一个目录</li> <li>function copyDir($directory,$dirTo){</li> <li>//两个参数,一个是源目录,一个是目标目录</li> <li>if(is_file($dirTo)){</li> <li>//判断如果目标是一个普通文件,则直接退出方法</li> <li>echo "目标不是一个目录,无法完成复制";</li> <li>return;</li> <li>}</li> <li>if(!file_exists($dirTo)){</li> <li>//判断如果目录不存在,则创建该目录</li> <li>mkdir($dirTo);</li> <li>}</li> <li>if($dir_handle=opendir($directory)){</li> <li>while($fileName=readdir($dir_handle)){</li> <li>if($fileName!="." && $fileName!=".."){</li> <li>$subFile=$directory."/".$fileName;</li> <li>$subToFile=$dirTo."/".$fileName;</li> <li>if(is_dir($subFile)){</li> <li>copyDir($subFile,$subToFile);</li> <li>}</li> <li>if(is_file($subFile)){</li> <li>copy($subFile,$subToFile);</li> <li>}</li> <li>}</li> <li>}</li> <li>closedir($dir_handle);</li> <li>}</li> <li>}</li> <li>copyDir("pm3","pm4");</li> <li>?></li> <li> </ol></div> <em onclick="copycode($('code_C0n'));">复制代码</em> </div> <br> </td></tr></table> <div class="ptg mbm mtn"> PHP</div> <div id="comment_65843" class="cm"> </div> <div id="post_rate_div_65843"></div> <br><br>