PHP - 如何从目录和子目录中获取最新文件

标签 php file filesystems subdirectory

我已使用以下脚本正确显示所选目录及其子目录中的所有文件。有谁知道如何修改此代码只回显目录/子目录中的最新文件?

function ListFiles($dir) {

    if($dh = opendir($dir)) {

        $files = Array();
        $inner_files = Array();

        while($file = readdir($dh)) {
            if($file != "." && $file != ".." && $file[0] != '.') {
                if(is_dir($dir . "/" . $file)) {
                    $inner_files = ListFiles($dir . "/" . $file);
                    if(is_array($inner_files)) $files = array_merge($files, $inner_files); 
                } else {
                    array_push($files, $dir . "/" . $file);
                }
            }
        }

        closedir($dh);
        return $files;
    }
}


foreach (ListFiles('media/com_form2content/documents/c30') as $key=>$file){
    echo "{aridoc engine=\"google\" width=\"750\" height=\"900\"}" . $file ."{/aridoc}";
}

最佳答案

PHP5 中,您可以使用 RecursiveDirectoryIterator 递归扫描目录中的所有文件:

$mostRecentFilePath = "";
$mostRecentFileMTime = 0;

$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("YOURDIR"), RecursiveIteratorIterator::CHILD_FIRST);
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        if ($fileinfo->getMTime() > $mostRecentFileMTime) {
            $mostRecentFileMTime = $fileinfo->getMTime();
            $mostRecentFilePath = $fileinfo->getPathname();
        }
    }
}

关于PHP - 如何从目录和子目录中获取最新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9371944/

相关文章:

PHP - 将文件系统路径转换为 ​​URL

javascript - 如何在php中将数组记录从进程页面传递到索引页面?

java - 如何使用 Java 在浏览器中启动文件下载?

c# - 使用 7zip 检测文件是否为存档

python - 如何分隔非逗号分隔的字典?

c - 如何使这个递归函数将其内容保存到链接列表中?

php - 重复的 HTML 如何以非重复的方式在您的代码库中表示?

javascript - 使用函数调用调用 jquery 弹出窗口

php - 控制别人的窗口屏幕

我可以在 FUSE 中实现带有打开文件表的文件系统吗?