PHP目录操作

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

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