封装穿件目录、读取目录和目录大小的方法

原创2019-02-24 10:59:01110
摘要:好像这个方法也比较固定,基本和老师的一致1、创建目录方法代码/**  * 目录创建操作  * @param $dirName //需要创建的目录名称  * @return string 提示信息  */ function create_folder($dirName) { &nb

好像这个方法也比较固定,基本和老师的一致

1、创建目录方法代码

/**
 * 目录创建操作
 * @param $dirName //需要创建的目录名称
 * @return string 提示信息
 */
function create_folder($dirName)
{
    // 判断是否存在相同文件或目录
    if(file_exists($dirName)){
        return '存在相同文件夹!';
    }
    //创建目录并判断
    if(mkdir($dirName,0777,true)){
        return '目录创建成功!';
    }
    return '目录创建失败!';
}
//echo create_folder('css'); //测试1
echo create_folder('admin/js');  //测试2 嵌套文件夹创建

浏览器运行结果

af85d4a1ff05d345b37207db188f1882.png

5350c5dbc040f57d41385398b7cac84c.png

2、读取目录操作

/**
 * 目录读取操作
 * @param $path 读取的目录
 * @return array 数组|失败
 */
function read_dir($path)
{
    //定义一个数组变量格式,以免结果出错
    $arr = [];
    //定义一个打开目录的变量
    $dir = opendir($path);
    //循环读取目录
    while($item = readdir($dir)){
        //先排除.和..目录
        if($item !="."&&$item !=".."){
            //遍历文件,拼接读取目录的路径
            if(is_file($path."/".$item)){
                //二维数组等于我们读取到的文件
                $arr['file'][]=$item;
            }
            //遍历目录
            if(is_dir($path."/".$item)){
                $arr['dir'][]=$item;
            }
        }
    }
    //关闭连接
    closedir($dir);
    //return数组
    return $arr;
}

浏览器运行结果

1.png

js目录下的两个目录

2.png


(2)测试2

3.png

4.png

二、 读取目录大小方法

1、php代码

/**
 * 目录大小操作
 * @param $path 需要查询大小的目录
 * @return int  目录的大小
 */
function dir_size($path)
{
    //定义一个变量用来接收目录大小的
    $sum=0;
    //把这个变量设置为全局变量
    global $sum;
    $dir = opendir($path);
    while ($item = readdir($dir)){
        //先排除.和..目录
        if($item !="."&&$item !=".."){
            if(is_file($path."/".$item)){
                //如果不止一个文件用+=来赋值
                $sum += filesize($path."/".$item);
            }
            if(is_dir($path."/".$item)){
                $func = __FUNCTION__;
                $func($path."/".$item);
            }
        }
    }
    return $sum;
}

//echo dir_size('js');  
echo trans_byte(dir_size('js'));

运行结果:

5de8450e3e47ffed71ed467c0d61e372.png

进行了字节转换的,

67a97eebc7cdbf9dedcd394157566266.png

windows目录大小

f35ba367cd1bda57a4f75b5c6a40de14.png


批改老师:西门大官人批改时间:2019-02-24 11:32:15
老师总结:作业写的非常好,这些方法的返回值再好好封装一下(如:状态码+消息+数据 类型的数组),可以生成自己的类库使用

发布手记

热门词条