您的位置:首页 > 编程语言 > PHP开发

php 文件操作中几种方法整理

2016-05-25 11:34 686 查看

1.获取文件夹下所有文件个数

echo ShuLiang("../0503lianxi");
function ShuLiang($filename)
{
if(is_dir($filename))//判断是不是文件夹
{
$attr=glob($filename."/*");//是文件夹则遍历目录
$sl=0;
foreach($attr as $v)
{
if(is_dir($v))
{
$sl=$sl+ShuLiang($v);
}
else
{
$sl++;
}
}
return $sl;
}
else if(is_file($filename))
{
return 1;
}
else
{
return 0;
}
}


  

2.获取文件夹下所有文件大小

[b]方法1:[/b]

echo Size("../0505lianxi");
function Size($filename)
{
if(is_dir($filename))//判断是否是文件夹
{
$attr=glob($filename."/*");//遍历文件夹
$size=0;
foreach($attr as $v)
{
if(is_dir($v))
{
$size=filesize($filename)+Size($v);
}
else
{
$size+=filesize($v);
}
}
return $size;
}
else if(is_file($filename))
{
return filesize($filename);
}
else
{
return 0;
}

}


  

[b]方法2:[/b]

echo dir_size("../0505lianxi");
function dir_size($dir)
{
$dh = opendir($dir);             //打开目录,返回一个目录流
$size = 0;      //初始大小为0
while(false !== ($file = @readdir($dh)))
{     //循环读取目录下的文件
if($file!='.' and $file!='..')
{
$path = $dir.'/'.$file;     //设置目录,用于含有子目录的情况
if(is_dir($path))
{
$size += $this->dir_size($path);  //递归调用,计算目录大小
}
elseif(is_file($path))
{
$size += filesize($path);   //计算文件大小
}
}
}
closedir($dh);             //关闭目录流
return $size;               //返回大小
}


  

3. 删除目录:(知道就好,不要轻易尝试,容易删除所有文件)

<?php
function deldir($dirname) {
if(!file_exists($dirname)) {
die("文件夹不存在!");
}
//如果是文件,直接删除即可
if(is_file($dirname)) {
unlink($dirname);
exit();
}

//打开目录资源
$dir = opendir($dirname);

while($filename = readdir($dir)) {
if($filename !="." && $filename!="..") { //*******
$filename = $dirname."/".$filename;

if(is_dir($filename) ) {
deldir($filename);
}else {
unlink($filename);
}

}
}

closedir($dir);
rmdir($dirname);
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: