php判断某个目录下是否存在文件

复制代码
/**
 * 判断字符串是否以什么结尾
 * @param  String  $haystack 字符串
 * @param  String  $needle 结尾
 * @return Boolean
 */
function endWith($haystack, $needle) {
    $length = strlen($needle);
    if ($length == 0) {
        return true;
    }
    return (substr($haystack, -$length) === $needle);
}
/**
 * 判断目录下是否存在文件
 * @param  String  $path 目录路径
 * @param  String  $recursive 是否递归(false情况下只判断第一级目录,true递归目录下所有文件判断)
 * @return Boolean
 */
function dirExistFile($path,$recursive = false) {
    if (!is_dir($path)) {
        return false;
    }

    // 目录相隔符号,linux是 /,window一般是\
    if(!(endWith($path, '/') || endWith($path, '\\'))){
        $path .= '/';
    }

    if($recursive){
        // 递归遍历目录
        $files = new \RecursiveIteratorIterator(
            new \RecursiveDirectoryIterator($path),
            \RecursiveIteratorIterator::LEAVES_ONLY
        );

        $isExistFile = false;

        foreach ($files as $file) {
            if ($file->isFile()) {
                $isExistFile = true;
                break;
            }
        }

        return $isExistFile;
    }else{
        $files = scandir($path);

        // 删除  "." 和 ".."
        unset($files[0]);
        unset($files[1]);

        $isExistFile = false;

        foreach ($files as $fileName) {
            $fileNamePath = $path.$fileName;
            if(is_file($fileNamePath)){
                $isExistFile = true;
                break;
            }
        }

        return $isExistFile;
    }
}

var_dump(dirExistFile('C:\test',true));
相关推荐
小二·1 分钟前
Go 语言系统编程与云原生开发实战(第13篇)工程效能实战:Monorepo × 依赖治理 × 构建加速(10万行代码实测)
开发语言·云原生·golang
暴躁小师兄数据学院1 分钟前
【WEB3.0零基础转行笔记】Golang编程篇-第4讲:Go语言中的流程控制
开发语言·后端·golang·web3·区块链
j445566112 分钟前
C++中的备忘录模式
开发语言·c++·算法
JaguarJack2 分钟前
Laravel AI SDK 正式发布
ai·php·laravel·服务端
代码无bug抓狂人4 分钟前
C语言之产值调整(蓝桥杯省B)
c语言·开发语言·蓝桥杯
云和数据.ChenGuang6 分钟前
python 面向对象基础入门
开发语言·前端·python·django·flask
空空空空空空空空空空空空如也7 分钟前
QT通过编译宏区分x86 linux arm的方法
linux·开发语言·qt
独自破碎E9 分钟前
【BISHI11】变幻莫测
android·java·开发语言
CODECOLLECT9 分钟前
工业安卓 Telnet 工具横向测评:5 大核心维度对比
android
Gavin在路上10 分钟前
SpringAIAlibaba之短期记忆与长期记忆实现原理(十一)
开发语言·人工智能