2012-07-22 11 views
18

Así que tengo esta aplicación que procesa archivos CSV. Tengo una línea de código para cargar el archivo.Cómo obtener el archivo más nuevo en un directorio en php

$myFile = "data/FrontlineSMS_Message_Export_20120721.csv"; //The name of the CSV file 
$fh = fopen($myFile, 'r');        //Open the file 

Me gustaría encontrar una manera en la que yo pude ver en el directorio data y obtener el archivo más reciente (todos ellos tienen etiquetas de fechas para que estuvieran con el fin interior de data) y establecer el nombre igual a $myFile.

Realmente no pude encontrar y entender la documentación de los directorios de php por lo que cualquier recurso útil sería apreciado también. Gracias.

Respuesta

30

He aquí un intento de utilizar scandir, suponiendo que los únicos archivos en el directorio son los archivos con sellos de tiempo que desee:

$files = scandir('data', SCANDIR_SORT_DESCENDING); 
$newest_file = $files[0]; 

En primer lugar, una lista de todos los archivos en el directorio en orden descendente, a continuación, lo que uno es por primera vez en esa lista tiene el nombre de archivo "más grande" y, por lo tanto, el mayor valor de marca de tiempo, y es por lo tanto el más nuevo.

Tenga en cuenta que scandir se añadió en PHP 5, pero its documentation page muestra cómo implementar que el comportamiento en PHP 4.

+0

Esto se ve bien. Lo probaré. – Mike

+1

@Mike: Genial :) Estoy lejos de mi casilla habilitada para PHP en este momento, por lo que esta muestra, si bien solo tiene dos líneas, no se ha probado, así que avíseme si no hace lo que debe. – Matchu

+1

Funcionó muy bien, gracias! Creo que necesitaba agregar un '/' a 'datos' para que funcione. – Mike

Cuestiones relacionadas