php如何查看目录信息 php自定义函数复制与删除目录文件

发布时间:2020-12-03编辑:脚本学堂
php怎么查看目录大小等信息,php如何复制目录与删除文件,php递归删除目录与子目录的自定义函数代码,可以递归查询目录中的文件大小,从而统计出目录大小。

一、php目录函数

递归查询目录中的文件大小,从而统计出目录大小。
 

复制代码 代码示例:
<?php
function dirSize($dir){
$dirsize = 0;
$url = opendir($dir);
while($filename = readdir($url)){
$file = $dir.'/'.$filename;
if(!($filename=='.' || $filename=='..')){
if(is_dir($file)){
$dirsize += dirSize($file);
}else{
$dirsize += filesize($file);
}
}
}
closedir($url);
return $dirsize;
}
 

二、php目录函数带二个参数
这个函数需要传递两个url,分别是旧目录和新目录,就能复制该目录及文件

例子:
 

复制代码 代码示例:
<?php
function copyDir($dirSrc,$dirTo){
if(is_file($dirTo))
{
echo '目标不是目录不能创建!';
return;
}
if(!file_exists($dirTo))
{
mkdir($dirTo);
}
$dir_handle = @opendir($dirSrc);
if($dir_handle)
{
while($filename = readdir($dir_handle))
{
if($filename!="." && $filename!="..")
{
$subSrcFile = $dirSrc . "".$filename;
$subToFile = $dirTo . "".$filename;
 
 if(is_dir($subSrcFile))
 {
 copyDir($subSrcFile, $subToFile);
 }
 if(is_file($subSrcFile))
 {
  copy($subSrcFile, $subToFile);
 }
}
}
closedir($dir_handle);
}
}

三、php目录函数三带一个参数

这个函数只要传递一个url,就能递归删除目录及子目录的文件,从而删除目录。

例子:
 

复制代码 代码示例:
<?php
function rmDirAll($url){
//检测要打开目录是否存在
if(!$dir=@opendir($url)){
return false;
}
while(false !==($file=readdir($dir))){
//排除当前目录与父级目录
if($file!=="."&&$file!==".."){
$file=$url .'/'. $file;
//递归删除目录
if(is_dir($file)){
rmDirAll($file);
}else{
if(@unlink($file)){
continue;
}else{
return false;
}
}
}
if(@rmdir($url)){
   return true;
}else{
   return false;
}
}
}