PHP之文件系统处理_文件操作…

目录操作相关函数

 

函数名             作用                   使用方法

opendir()          打开目录句柄           resource opendir ( string $path [, resource $context ] )
readdir()          从目录句柄中读取条目   string readdir ( resource $dir_handle )
closedir()         关闭目录句柄           void closedir ( resource $dir_handle )
rewinddir()        倒回目录句柄           void rewinddir ( resource $dir_handle )
mkdir();           创建一个空目录
rmdir();           只可以删除空目录
rename();          重命名一个文件或目录

 

 

例一:

<?php
//实现目录的遍历
$dirname="table";
if(file_exists($dirname)){
 $dirRec=opendir($dirname);
 while($dirRecName=readdir($dirRec)){
  $dirRecPath=$dirname."/".$dirRecName;
  if($dirRecName!="." and $dirRecName!=".."){
   if(is_dir($dirRecPath)){
    echo $dirRecName.'    <font color="#006600">文件夹大小为:<b>';
    echo fsize(dirsize($dirRecPath)).'</b>    创建的时间:<b>';
    echo date("Y-m-d H:i:s",filectime($dirRecPath)).'</b></font><br />';
   }else{
    echo $dirRecName.'    <font color="red">文件大小为:<b>';
    echo fsize(filesize($dirRecPath)).'</b>    创建的时间:<b>';
    echo date("Y-m-d H:i:s",filectime($dirRecPath)).'</b></font><br />';
   }
  }
  
 }
 closedir($dirRec);
}else{
 echo "目录不存在";
}

 

function fsize($size){  //计算文件的大小单位
 $dw="";
 if($size>=pow(2,30)){
  $size=round($size/pow(2,30),2);
  $dw="GB";
 }elseif($size>=pow(2,20)){
  $size=round($size/pow(2,20),2);
  $dw="MB";
 }elseif($size>=pow(2,10)){
  $size=round($size/pow(2,10),2);
  $dw="KB";
 }else{
  $dw="Byte";
 }
 return $size.$dw;
}

function dirsize($dirName){  //计算目录的大小
 $size=0;
 $dirRec=opendir($dirName);     //打开目录
 while($dirRecName=readdir($dirRec)){      //当目录或文件条目存在时执行
  $dirRecPath=$dirName.'/'.$dirRecName;  //获得目录或文件完整的路径名
  if($dirRecName!="." and $dirRecName!=".."){ //去除上级目录和本级目录的路径
   if(is_dir($dirRecPath)){    //判断是否是目录
    $size+=dirsize($dirRecPath);   //用递归打开目录
   }else{
    $size+=filesize($dirRecPath);  //累计文件大小
   }
  }
 
 closedir($dirRec);  //关闭资源
 return $size;
}
?>

 

 

例二:

<?php
//目录的拷贝函数设计
$dirname="table";
copydir($dirname,"demo1");
function copydir($dirname,$newdir){
 if(is_file($dirname) or file_exists($newdir)){  //判断被拷贝的是不是目录,且目标目录不存在
  echo '<font color="red"><b>'.$newdir.'已经存在或者'.$dirname.'不是一个目录</b></font><br  />';
  return;
 }else{
  mkdir($newdir);
  echo "创建".$newdir."目录成功!<br />";
 }
 $dirres=opendir($dirname);
 while($dirfile=readdir($dirres)){
  $dirpach=$dirname."/".$dirfile;
  $dirtopach=$newdir."/".$dirfile;
  if($dirfile!="." and $dirfile!=".."){
   if(is_dir($dirpach)){
    copydir($dirpach,$dirtopach);  //使用递归创建文件目录
   }else{
    copy($dirpach,$dirtopach);
    echo "创建".$dirtopach."文件成功!<br />";
   }
  }
 }
 closedir($dirres);
 
}

?>

 

 

例三 :

<?php
//删除目录函数设计

$dirname="demo1";
deldir($dirname);
function  deldir($dirname){
 if(is_dir($dirname) and file_exists($dirname)){
  $dirRes=opendir($dirname);
  while($dirResName=readdir($dirRes)){
   $dirResPach=$dirname."/".$dirResName;
   if($dirResName!="." and $dirResName!=".."){
    if(is_dir($dirResPach)){
     deldir($dirResPach);
    }else{
     unlink($dirResPach);
     echo '<font color="green">'.$dirResPach.'文件删除成功!</font><br />';
    }
   }
  }
  closedir($dirRes);
  rmdir($dirname);
  echo '<font color="green">'.$dirname.'目录删除成功!</font><br />';
 }else{
  echo '<font color="red"><b>'.$dirname.'不是一个目录或不存在!</b></font><br />';
 }
}
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值