You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何获取指定目录及其所有子目录下的最新文件

你可以直接用PHP原生提供的递归迭代器实现,不需要自己手写递归遍历逻辑,代码非常简洁:

// 定义要扫描的根目录
$rootPath = 'c:\myfolder';

$latestFilePath = '';
$latestModifyTime = 0;

// 初始化递归目录迭代器,自动跳过.、..特殊目录
$directoryIterator = new RecursiveDirectoryIterator($rootPath, RecursiveDirectoryIterator::SKIP_DOTS);
// 迭代所有层级的子目录内容
$iterator = new RecursiveIteratorIterator($directoryIterator);

foreach ($iterator as $fileInfo) {
    // 仅比对文件,跳过子目录本身
    if ($fileInfo->isFile()) {
        $currentMtime = $fileInfo->getMTime();
        if ($currentMtime > $latestModifyTime) {
            $latestModifyTime = $currentMtime;
            $latestFilePath = $fileInfo->getPathname();
        }
    }
}

if (!empty($latestFilePath)) {
    echo '整个目录树内的最新文件为:' . $latestFilePath;
} else {
    echo '目标目录下不存在任何文件';
}

如果需要按文件创建时间查找最新文件,可对应修改时间获取方法:

  • Windows系统:将getMTime()替换为getCTime()
  • Linux系统且PHP版本 >= 8.0:将getMTime()替换为getBirthTime()

内容的提问来源于stack exchange,提问作者Kevin87

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 21:57:02