Page 1 of 1

get file most recent date in directory

Posted: Fri Jul 03, 2009 10:48 am
by junjustkim
hi to all,

I have a class to get the image file in directory, The problem is I want to get only the most recent date or even all files but sorted by date from most recent to old date.

thanks in advance

Tirso

here is my code

Code: Select all

   function get_file_list($directory, $type = "img_creation", $print_list = false)
    {
        // Checks the dir
        if(!is_dir($directory))
        {
            $this->_error("Invalid Directory: " . $diretorio, E_USER_ERROR);
        }
        
        // File types regex
        Switch($type)
        {
            Case "img_creation":
                $types_regex = "jpeg|jpg|png";
            break;
 
            Case "img_creation_gif":
                $types_regex = "jpeg|jpg|png|gif";
            break;
 
            Case "img":
                $types_regex = "gif|jpeg|jpg|png|bmp";
            break;
 
            Case "pag":
                $types_regex = "txt|htm|html|php|asp|aspx";
            break;
 
            Case "vid":
                $types_regex = "avi|swf|mpg|mpeg|wmv|asx|mov";
            break;
 
            Case "doc":
                $types_regex = "txt|doc|rtf|xsl";
            break;
 
            Default:
                $types_regex = false;
        }
        
        // Open dir handle
        if(!$dir_handle = @opendir($directory))
        {
            $this->_error("I couldn't open the dir: " . $directory, E_USER_ERROR);
        }
        
        // Initilization of the list array
        $file_list = array();
        
        // Starts dir navigation
        while (false !== ($file = @readdir($dir_handle)))
        { 
            if ($file == "." || $file == "..")
            { 
                continue;
            }
            
            // The list will be generate with specific types, according to the regex
            if($types_regex)
            {
                if(eregi( "\.(" . $types_regex . ")$", $file))
                {
                    $file_list[] = $file;
                }
            }
 
            // The list will be generate with all dir's files
            else
            {
                // Add only files to the list
                if(is_file($directory . $file))
                {
                    $file_list[] = $file;
                }
            }
        }
        
        // Close dir handle
        @closedir($dir_handle);
        
        // Has no files in the dir
        if(!sizeof($file_list))
        {
            $this->_error("The directory: " . $directory . " is empty!", E_USER_NOTICE);
        }
 
        // If debugging...
        if($print_list)
        {
            echo "<pre>";
            print_r($file_list);
            echo "</pre>";
        }
        
        // Returns file list
        return $file_list;
    }

Re: get file most recent date in directory

Posted: Fri Jul 03, 2009 11:32 am
by Eric!
Build the list of filenames with times (use filemtime() ) then sort it.

There are some snipets in the manual that will help.

http://php.net/manual/en/function.filemtime.php