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 "文件夹删除成功"; } ?>