¿Cómo obtener el último nombre de archivo o la ruta de archivo que se agrega a un directorio?Obtenga la última adición de archivos en un directorio
Respuesta
$path = "/path/to/my/dir";
$latest_ctime = 0;
$latest_filename = '';
$d = dir($path);
while (false !== ($entry = $d->read())) {
$filepath = "{$path}/{$entry}";
// could do also other checks than just checking whether the entry is a file
if (is_file($filepath) && filectime($filepath) > $latest_ctime) {
$latest_ctime = filectime($filepath);
$latest_filename = $entry;
}
}
// now $latest_filename contains the filename of the file that changed last
Enumere todos los archivos de directorio, obtenga el filemtime() de cada uno y listo.
Creo que más bien necesita 'filectime'. – Gumbo
@Gumbo: por qué usar el tiempo de proceso en lugar del tiempo de archivo. Veo que filemtime() funciona mejor en una multitud de plataformas, mientras que filectime() no parece funcionar correctamente en todos los servidores de Windows. – secretlm
@secretlm 'filectime' probablemente no funciona porque es solo el tiempo de creación del archivo, no el tiempo de modificación – FluorescentGreen5
$dir = dirname(__FILE__).DIRECTORY_SEPARATOR;
$lastMod = 0;
$lastModFile = '';
foreach (scandir($dir) as $entry) {
if (is_file($dir.$entry) && filectime($dir.$entry) > $lastMod) {
$lastMod = filectime($dir.$entry);
$lastModFile = $entry;
}
}
Si está trabajando en Linux, echar un vistazo a http://us2.php.net/manual/en/book.inotify.php. Esto supone que debes dejar un script esperando & registrando en segundo plano estos eventos.
$dir = "/path/to/Your/dir";
$pattern = '\.(zip|ZIP|pdf|PDF)$'; // check only file with these ext.
$newstamp = 0;
$newname = "";
if ($handle = opendir($dir)) {
while (false !== ($fname = readdir($handle))) {
// Eliminate current directory, parent directory
if (ereg('^\.{1,2}$',$fname)) continue;
// Eliminate other pages not in pattern
if (! ereg($pattern,$fname)) continue;
$timedat = filemtime("$dir/$fname");
if ($timedat > $newstamp) {
$newstamp = $timedat;
$newname = $fname;
}
}
}
closedir ($handle);
// $newstamp is the time for the latest file
// $newname is the name of the latest file
// print last mod.file - format date as you like
print $newname . " - " . date("Y/m/d", $newstamp);
Esto utiliza una función depreciada: ereg() –
filectime es para cuando los metadatos como los valores de chmod se cambian. filemtime es para el cambio de contenido real.
Mi solución con PHP 5:
$dir = "/path/to/Your/dir";
$arraydir =scandir($dir, 1);
echo "arraydir 0: " . $arraydir[0] . "<br/>"; // 1. new file
echo "arraydir 1: " . $arraydir[1] . "<br/>"; // 2. new file
echo "arraydir elements: " . count($arraydir) . "<br/>";
(palabras de búsqueda DE: Neuste und zweitneuste Datei eines Ordners anzeigen PHP MIT)
- 1. Obtenga TeamCity para construir la última etiqueta
- 2. Última modificación de un directorio en OSX
- 3. Python: obtenga la ruta relativa de todos los archivos y subcarpetas en un directorio
- 4. Guarde los archivos de SharedPreferences en el directorio personalizado u obtenga el directorio predeterminado de SharedPreferences
- 5. ¿Recibe los archivos en un directorio ordenado por la última modificación?
- 6. Adición de un directorio a PATH en Ubuntu
- 7. Directorio última fecha de modificación
- 8. TFS Obtenga la última versión de la Carpeta específica
- 9. Obteniendo la última fecha de modificación de archivos en el directorio usando PHP
- 10. ¿La última biblioteca de utilidad de directorio y archivo .NET?
- 11. Muchos archivos en un directorio?
- 12. Copia de archivos desde un directorio en un directorio existente
- 13. Android Obtenga el Directorio de datos de la aplicación 'Inicio'
- 14. Obtenga todas las confirmaciones de git desde la última etiqueta
- 15. Obtenga la última solicitud de ajax y cancele otras
- 16. Obtenga la primera y la última clase con jQuery
- 17. cadena transversal C: obtenga la última palabra de una cadena
- 18. C#: Obtenga los 5 archivos más nuevos (últimos modificados) de un directorio
- 19. Java: obtenga el archivo más nuevo en un directorio?
- 20. Lista de archivos por la última fecha editada
- 21. Servicio de Windows: obtenga el directorio actual
- 22. ¿Cómo cambio la extensión de muchos archivos en un directorio?
- 23. Copiar archivos en la carpeta un directorio en python
- 24. Leyendo archivos desde un directorio en Scala
- 25. Mover archivos a un directorio
- 26. ¿Cómo descargar la última versión de los archivos CSS de un tema?
- 27. ¿Cómo atravesar los archivos en un directorio?
- 28. OutOfMemory cuando lista archivos en un directorio
- 29. Necesito combinar muchos archivos en un directorio
- 30. Regex para archivos en un directorio
[ctime no es tiempo de creación] (http://userprimary.net/posts/2007/11/18/ctime-in-unix-means-last-change-time-not-create-time/) – kojiro
¿Algún nuevo método para realizar búsquedas o escaneos más rápidos? – Muhaimin
@Muhaimin Abdul Pruebe scandir() ~ PHP 5 –