Jump to content

Search for newest directory


void_set

Recommended Posts

Hello how can i modify this script to search in all subdirectories to get only one new directory? THX!

 

This little script only search in current $path for newest directory but i also need to search in all subdirectories

<?php
function getNewestDir($path) {
$working_dir = getcwd();
chdir($path); ## chdir to requested dir
$ret_val = false;
if ($p = opendir($path) ) {
while (false !== ($file = readdir($p))) {
if ($file{0} != '.' && is_dir($file)) {
$list[] = date('YmdHis', filemtime($path.'/'.$file)).$path.'/'.$file;
}
}
rsort($list);
$ret_val = $list[0];
}
chdir($working_dir); ## chdir back to script's dir
return $ret_val;
} 

?>
Link to comment
https://forums.phpfreaks.com/topic/297284-search-for-newest-directory/
Share on other sites

Using a similar function but making it recursive to search the directory tree.

$dt = 0;
$latestfile = '';
$latestdir = '';
$startDir = 'c:/inetpub/wwwroot';   // set start of search

newestDir($startDir, $dt, $latestfile, $latestdir);  // call search function

echo "$latestdir/$latestfile : " . date('Y-m-d H:i:s', $dt);  // output lastest dir/file

function newestDir($dir, &$dt, &$latestfile, &$latestdir)
{
    if ($p = opendir($dir) ) {
        while (false !== ($file = readdir($p))) {
            if ($file=='.' || $file=='..') continue;
            if (!is_dir("$dir/$file")) {
                if (($ft = filemtime("$dir/$file")) > $dt) {
                    $dt = $ft;
                    $latestdir = $dir;
                    $latestfile = $file;
                }
            }
            else {
                newestDir("$dir/$file", $dt, $latestfile, $latestdir);
            }
        }
    }
    closedir($p);
}

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.