PHP文件操作的经典案例

<?php
	/* 遍历目录函数,只读取目录的最外层的内容 */
	function readDirectory($path){
		$handle = opendir($path);
		while(($item = readdir($handle))!== false){
			//.和..这2个特殊的目录
			if($item!="."&&$item!=".."){
				if(is_file($path."/".$item)){
					$arr["file"][]=$item;
				}
				if(is_dir($path."/".$item)){
					$arr["dir"][]=$item;
				}
			}
		}
		closedir($handle);
		return $arr;
	}
	
	/* 获取文件夹大小 */
	function dirSize($path){
		$sum=0;
		global $sum;
		$handle=opendir($path);
		while(($item=readdir($handle))!==false){
			if($item!="."&&$item!=".."){
				if(is_file($path."/".$item)){
					$sum+=filesize($path."/".$item);
				}
				if(is_dir($path."/".$item)){
					$func=__FUNCTION__;
					$func($path."/".$item);
				}
			}
		}
		closedir($handle);
		return $sum;
	}

	/* 检测文件夹名称是否合法 */
	function checkFilename($filename){
		$pattern = "/[\/,\*,<>,\?\|]/";
		if(preg_match($pattern,$filename)){
			return false;
		}else{
			return true;
		}
	}
	
	/* 创建文件夹 */
	function createFolder($dirname){
		//检测文件夹名称是否合法
		if(checkFilename(basename($dirname))){
			//当前目录下是否存在同名文件夹名称
			if(!file_exists($dirname)){
				if(mkdir($dirname,0777,true)){
					$mes="文件夹创建成功";
				}else{
					$mes="文件夹创建失败";
				}
			}else{
				$mes="存在相同文件夹名称";
			}
		}else{
			$mes="非法文件夹名称";
		}
		return $mes;
	}
	
	/* 重命名文件夹 */
	function renameFolder($oldname,$newname){
		//检测文件夹名称是否合法
		if(checkFilename(basename($newname))){
			//检测当前目录下是否存在同名文件夹名称
			if(!file_exists($newname)){
				if(rename($oldname,$newname)){
					$mes="重命名成功";
				}else{
					$mes="重命名失败";
				}
			}else{
				$mes="存在同名文件夹";
			}
		}else{
			$mes="非法文件夹名称";
		}
		return $mes;
	}
	
	/* 复制文件夹 */
	function copyFolder($src,$dst){
		if(!file_exists($dst)){
			mkdir($dst,0777,true);
		}
		$handle=opendir($src);
		while(($item=readdir($handle))!==false){
			if($item!="."&&$item!=".."){
				if(is_file($src."/".$item)){
					copy($src."/".$item,$dst."/".$item);
				}
				if(is_dir($src."/".$item)){
					$func=__FUNCTION__;
					$func($src."/".$item,$dst."/".$item);
				}
			}
		}
		closedir($handle);
		return "复制成功";
	}
	
	/* 剪切文件夹 */
	function cutFolder($src,$dst){
		if(file_exists($dst)){
			if(is_dir($dst)){
				if(!file_exists($dst."/".basename($src))){
					if(rename($src,$dst."/".basename($src))){
						$mes="剪切成功";
					}else{
						$mes="剪切失败";
					}
				}else{
					$mes="存在同名文件夹";
				}
			}
		}else{
			$mes="目标文件夹不存在";
		}
		return $mes;
	}
	
	/* 删除文件夹 */
	function delFolder($path){
		$handle=opendir($path);//打开目录,获取句柄
		while(($item=readdir($handle))!==false){//读取句柄资源
			if($item!="."&&$item!=".."){
				if(is_file($path."/".$item)){
					unlink($path."/".$item);
				}
				if(is_dir($path."/".$item)){
					$func=__FUNCTION__;//自身函数名称
					$func($path."/".$item);
				}
			}
		}
		closedir($handle);
		rmdir($path);//删除目录,目录必须为空才能删除
		return "文件夹删除成功";
	}
?>

  

posted @ 2016-09-04 15:42  Yxh_blogs  阅读(313)  评论(0编辑  收藏  举报