PHP目录操作

<?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");
?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值