文件操作函数:目录的基本操作

来源:互联网 发布:淘宝刷单处罚新规则 编辑:程序博客网 时间:2024/05/17 22:05
<?php
    /**
     *文件操作函数:目录的基本操作
     */

    // 1.basename()返回路径中的文件名部分
    $path='./var/www/html/demo.php';
    echo basename($path); // 输出demo.php
    echo basename($path,".php"); // 输出demo
    // 2.dirname()返回去掉文件名的目录部分
    echo dirname($path);  // 输出./var/www/html
    echo "<hr/>";
    // 3.pathinfo()返回一个关联数组(dirname,basename.extension 目录名,基本名,扩展名)
    $path2="./demo2.php";
    $info=pathinfo($path2);
    echo $info['dirname'].'<br/>';
    echo $info['basename'].'<br/>';
    echo $info['extension'];
    echo "<hr/>";
    // 4.遍历文件目录
    // opendir() 打开指定目录
    // readdir() 读取指定内容
    // closedir() 关闭指定目录
    // rewinddir() 倒回目录句柄
    $num=0;  // 统计字目录和文件个数
    $dirname='../../basic';
    $dir_handle=opendir($dirname);
    // 输出遍历结果
    while($file=readdir($dir_handle)){
        $dirFile=$dirname."/".$file;
        echo "文件名:".$file.'&nbsp;';
        echo "文件大小:".filesize($dirFile).'&nbsp;';
        echo "文件类型:".filetype($dirFile).'&nbsp;';
        echo "文件修改时间".date("Y/n/t",filemtime($dirFile)).'<br/>';
        $num++;
    }
    closedir($dir_handle);
    echo "文件总个数:".$num;
    echo "<hr/>";
    // 5.统计目录大小
    function dirSize($diretory){
        $dir_size=0;  // 记录定义目录大小的变量并初始化为0
        if($dir_handle=opendir($diretory)){  // 打开目录
            while($filename=readdir($dir_handle)){ // 读取目录
                if($filename!="."&&$filename!=".."){
                    $subFile=$diretory."/".$filename;
                    if(is_dir($subFile)){  // 判断是否是目录
                        $dir_size+=dirSize($subFile);  // 递归
                    }elseif(is_file($subFile)){  // 判断是否是文件
                        $dir_size+=filesize($subFile);  // 文件大小
                    }
                }
            }
            closedir($dir_handle);
            return $dir_size;
        }
    }

    $dir_size=dirSize("../../basic");
    echo round($dir_size/pow(1024,1),2)."KB";
    echo "<hr/>";
    // 6.建立和删除目录
    function delDir($directory){
        if(file_exists($diretory)){
            if($dir_handle=opendir($directory)){
                while($filename=readdir($dir_handle)){
                    if($filename!="."&&$filename!=".."){
                        $subFile=$directory."/".$filename;
                        if(is_dir($subFile)){
                            delDir($subFile);
                        }elseif(is_file($subFile)){
                            unlink($subFile);  // 删除这个文件
                        }
                    }
                }
                closedir($dir_handle);
                rmdir($directory);  // 删除空目录
            }
        }
    }
    delDir("../../basic");
    echo "<hr/>";
    // 7.复制目录
    function copyDir($dirSrc,$dirTo){
        if(is_file($dirTo)){
            echo "目标不是目录,不能创建";
            return;
        }
        if(!file_exists($dirTo)){  
            mkdir($dirTo);  // 创建目标目录
        }
        if($dir_handle=opendir($dirSrc)){
            while($filename=readdir($dir_handle)){
                if($filename!="."&&$filename!=".."){
                    $subSrcFile=$dirSrc ."/".$filename;
                    $subToFile=$dirTo ."/".$filename;
                    if(is_dir($subSrcFile)){
                        copyDir($subSrcFile,$subToFile);
                    }
                    if(is_file($subSrcFile)){
                        copy($subSrcFile,$subToFile);
                    }
                }
            }
            closedir($dir_handle);
        }
    }

    copyDir("../../PHParticle/001","./");



0 0
原创粉丝点击