作业创建目录,读取目录。目录大小
2019-02-25 14:59:00300/**
* 创建目录的函数
* @param $dirname 目录
* @return string 提示信息
*/
function createFolder($dirname){
//当前目录下是否存在同名文件夹名称
if(file_exists($dirname)){
return '该目录存在相同的文件夹';
}
//创建目录
if(mkdir($dirname,0777,true)){
return '成功';
}
return "创建失败";
}/**
* 读取目录
* @param $dirName 目标目录
* @return array|string 数组| 提示信息
*/
function readDirectory($dirName){
if(is_dir($dirName)){
$data = opendir($dirName);
$arr = []; //在使用递归时这里的值不会被替换掉 在php中如果存在全局变量,那么此处赋值将不影响全局变量的值。也就是说赋值无效
global $arr; //使用关键字定义后。会变成全局变量,这样php中函数的赋值。就会无效化
while($row = readdir($data)){
if($row != '.' && $row != '..'){
$lujin = $dirName.'/'.$row; //将目录也拼接进去
//如果是文件
if(is_file($lujin)){
$arr['file'][] = $lujin;
}
//如果是目录
if(is_dir($lujin)){
$arr['dir'][] = $lujin;
$fun = __FUNCTION__;
$fun($lujin);
}
}
}
return $arr;
}
return "没有存在该目录";
}/**
* 返回目录大小
* @param $dirName 目标目录
* @return string 目录大小|提示信息
*/
function dirSize($dirName){
$num = 0; //由于下面使用了关键字。所以此处不会被赋值 在php中如果存在全局变量,那么此处赋值将不影响全局变量的值。也就是说赋值无效
global $num; //使其成为全局变量,使用递归函数时。尤其重要
//判断是否存在该目录
if(is_dir($dirName)){
$data2 = opendir($dirName);
//循环遍历目录
while($row = readdir($data2)){
if($row != '.' && $row != '..'){
//拼接路劲
$lujin = $dirName."/".$row;
//是否为文件
if(is_file($lujin)){
$num+=filesize($lujin);
}
//是否为目录
if(is_dir($lujin)){
$fun = __FUNCTION__;
$fun($lujin);
}
}
}
return $num;
}
return "不是目录";
}