php对文件夹的操作

浏览:328 发布日期:2020/02/26 分类:功能实现
php对文件夹的操作php对文件夹的操作
 
<?php 
//打开指定目录
/**
 * 遍历目录函数,只读取目录中的最外层的内容
 * @param string $path
 * @return array
 */
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;
}
//$path="file";
//print_r(readDirectory($path));

/**
 * 得到文件夹大小
 * @param string $path
 * @return int 
 */
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;
}
//$path="file";
//echo dirSize($path);
//创建文件夹
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;
}
/**
 * 重命名文件夹
 * @param string $oldname
 * @param string $newname
 * @return string
 */
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){
    //echo $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 "复制成功";
    
}

/**
 * 剪切文件夹
 * @param string $src
 * @param string $dst
 * @return string
 */
function cutFolder($src,$dst){
    //echo $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="不是一个文件夹";
        }
    }else{
        $mes="目标文件夹不存在";
    }
    return $mes;
}

/**
 * 删除文件夹
 * @param string $path
 * @return string
 */
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 "文件夹删除成功";
}



    /**
     * 删除目录及地下的全部文件
     * @param string $dir
     * @return bool
     */
 function delDirOfAll($dir) {
        //先删除目录下的文件:
        if (is_dir($dir)) {
            $dh=opendir($dir);
            while (!!$file=readdir($dh)) {
                if($file!="." && $file!="..") {
                    $fullpath=$dir."/".$file;
                    if(!is_dir($fullpath)) {
                        unlink($fullpath);
                    } else {
                        self::delDirOfAll($fullpath);
                    }
                }
            }
            closedir($dh);
            //删除当前文件夹:
            if(rmdir($dir)) {
                return true;
            } else {
                return false;
            }
        }
    }
 
评论( 相关
后面还有条评论,点击查看>>