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