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

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.获取文件夹下所有文件大小

方法1:

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;
	}

}

  

方法2:

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);
	}

  

时间: 2024-10-28 23:45:34

php 文件操作中几种方法整理的相关文章

Python复制文件的九种方法

以下是演示"如何在Python中复制文件"的九种方法. shutil copyfile()方法 shutil copy()方法 shutil copyfileobj()方法 shutil copy2()方法 os popen方法 os系统()方法 Thread()方法 子进程调用()方法 子进程check_output()方法 1. Shutil Copyfile()方法 该方法只有在目标可写时才将源的内容复制到目的地.如果您没有写入权限,则会引发IOError. 它通过打开输入文件进

pdf文件怎么编辑 如何编辑pdf文件的三种方法

pdf文件越来越流行,工作中经常遇到需要修改pdf文件的情况.一般人的电脑上都为pdf文件安装了一个pdf阅读器,可它只能用来阅读查看pdf文件,并不能满足人们的编辑需求.那么pdf文件怎么编辑?下面小编给大家讲讲关于如何编辑pdf文件的三种方法.     方法一:直接编辑,一步到位     如果要对pdf文件进行编辑,我们则需要安装pdf编辑器.最新版的迅捷pdf编辑器可以编辑pdf文件中的任何内容,包括文字.图片.页眉页脚.添加注释等等.迅捷pdf编辑器如何编辑pdf文件?     首先需要

pdf文件怎么修改 修改PDF文件的两种方法

都说PDF格式的文件不能修改,我就呵呵了!不管你们信不信,反正我是不信.因为我会修改PDF文件,并且方法还不止一种.想知道我是怎么修改PDF文件的吗?下面我就告诉大家修改PDF文件的两种方法. 方法一 1.方法一就是将PDF文件转换成一种可容易编辑的文档,如:word.excel.ppt等格式,然后再进行编辑,编辑好后再将其转换成PDF格式,是不是很简单!具体是该如何转换的,下面有详细教程. 2.下载一个PDF转换器,并将它安装在电脑上.工具最好是支持双向转换的那种,如:http://www.x

打开cad文件的几种方法

转自原文 打开cad文件的几种方法 IWorkspaceFactory pWorkspaceFactory; IFeatureWorkspace pFeatureWorkspace; IFeatureLayer pFeatureLayer; IFeatureDataset pFeatureDataset; //打开CAD数据集 pWorkspaceFactory = new CadWorkspaceFactoryClass(); pFeatureWorkspace = (IFeatureWork

JavaScript实现判断图片是否加载完成的3种方法整理

JavaScript实现判断图片是否加载完成的3种方法整理 有时候我们在前端开发工作中为了获取图片的信息,需要在图片加载完成后才可以正确的获取到图片的大小尺寸,并且执行相应的回调函数使图片产生某种显示效果.本文主要整理了几种常见的javascipt判断图片加载完成时的方法,并通过代码与实际应用相结合进行解释与说明. onload方法 通过向img标签添加onload属性,并填入相应的函数来执行后续的javascipt代码.如下代码例子中img元素默认是不显示的,通过onload判断加载完成后再将

ubuntu/linux mint 创建proc文件的三种方法(二)

在做内核驱动开发的时候,可以使用/proc下的文件,获取相应的信息,以便调试. 大多数/proc下的文件是只读的,但为了示例的完整性,都提供了写方法. 方法一:使用create_proc_entry创建proc文件(简单,但写操作有缓冲区溢出的危险): 方法二:使用proc_create和seq_file创建proc文件(较方法三简洁): 方法三:使用proc_create_data和seq_file创建proc文件(较麻烦,但比较完整): 示例四:在proc文件中使用内核链表的一个示例(用的方

ubuntu/linux mint 创建proc文件的三种方法(四)

在做内核驱动开发的时候,可以使用/proc下的文件,获取相应的信息,以便调试. 大多数/proc下的文件是只读的,但为了示例的完整性,都提供了写方法. 方法一:使用create_proc_entry创建proc文件(简单,但写操作有缓冲区溢出的危险): 方法二:使用proc_create和seq_file创建proc文件(较方法三简洁): 方法三:使用proc_create_data和seq_file创建proc文件(较麻烦,但比较完整): 示例四:在proc文件中使用内核链表的一个示例(用的方

oracle rename数据文件的两种方法

oracle rename数据文件的两种方法 2012-12-11 20:44 10925人阅读 评论(0) 收藏 举报  分类: oracle(98)  版权声明:本文为博主原创文章,未经博主允许不得转载. 第一种 alter tablespace users rename datafile '==' to '***'; 这种方式需要数据库处于open状态,表空间在offline的状态下才能更改. [sql] view plain copy SQL> alter tablespace user

GitHub常用上传文件的两种方法 附带常见的问题及Git安装教程

从早上下课到现在一直在琢磨如何给Gethub下载本地文件,中午饭都没吃.还好是解决了,感觉挺有成就感的.O(∩_∩)O哈哈~ 好哒 闲话不说,说重点. 一.git的安装 百度云:http://pan.baidu.com/s/1mhFy8Ik 打开后 点next 2.继续点next 3.继续点next 4.选第一行是默认windows使用 选第二行是Windows和Linux都可以 点next 5.可以不用管,选择默认就可以了 点next 6.安装成功后弹出 7 这时候你找到你的git文件夹,点击