Para un directorio dado, ¿cómo puedo obtener una lista de archivos en orden cronológico (por fecha de modificación) en Node.JS? No vi nada en los documentos del sistema de archivos.Usando Node.JS, ¿cómo se obtiene una lista de archivos en orden cronológico?
Respuesta
daría un tiro.
var dir = './'; // your directory
var files = fs.readdirSync(dir);
files.sort(function(a, b) {
return fs.statSync(dir + a).mtime.getTime() -
fs.statSync(dir + b).mtime.getTime();
});
Utilicé la versión "sincronizada" de los métodos. Debe hacerlos asincrónicos según sea necesario. (Probablemente sólo la parte readdir
.)
Es probable que pueda mejorar el rendimiento un poco si se hace una caché la información estadística.
var files = fs.readdirSync(dir)
.map(function(v) {
return { name:v,
time:fs.statSync(dir + v).mtime.getTime()
};
})
.sort(function(a, b) { return a.time - b.time; })
.map(function(v) { return v.name; });
¿Has probado fs.readdir()
?
fs.readdir() no vuelve en orden cronológico. – Newtang
No creo que ninguna función definida lo haga por usted, pero puede usarlo junto con 'fs.stat (ruta, [devolución de llamada])' (usando el mtime) para ordenar la matriz. http://stackoverflow.com/questions/7559555/last-modified-file-date-in-node-js – Chase
Terminé usando subrayado, ya que da la oportunidad de dar cuenta de qué estadística usar para la ordenación.
primero obtener los archivos en el directorio utilizando files = fs.readFileSync(directory);
(Es posible que desee probar err capturas en caso directorio no existe o permisos de lectura)
luego se pasa a una función como la siguiente. Eso te devolverá la lista ordenada.
function orderByCTime(directory, files) {
var filesWithStats = [];
_.each(files, function getFileStats(file) {
var fileStats = fs.statSync(directory + file);
filesWithStats.push({
filename: file,
ctime: fileStats.ctime
});
file = null;
});
return _.sortBy(filesWithStats, 'ctime').reverse();
}
Underscore sort by asc by default. Lo invierto como lo necesito en orden descendente.
Puede ordenar por otra estadística (check node fs documentation here). Elijo utilizar ctime, ya que también debe representar "tocar" el archivo.
Hope helps,
- 1. ¿Cómo se obtiene una lista de directorio en C?
- 2. ¿Cómo se obtiene una lista de todas las fuentes instaladas?
- 3. ¿Cómo veo las últimas 10 confirmaciones en orden cronológico inverso con SVN?
- 4. ¿Cómo se obtiene una lista de directorios ordenados por fecha de creación en python?
- 5. PHP (carpeta) Lista de archivos en orden alfabético?
- 6. ¿Cómo se importan los archivos non-node.js?
- 7. ¿Cómo ORDEN EN una consulta usando MINUS?
- 8. ¿Cómo hacer una lista de archivos usando dos comandos?
- 9. Cómo enviar archivos con node.js
- 10. Lectura y devolución de archivos múltiples en Node.js usando fs.readFile
- 11. ¿Cómo se obtiene la dirección de ethernet usando Java?
- 12. Entity Framework Query - Obtiene objetos en orden específico
- 13. Definir el orden de una lista
- 14. ¿Cómo se obtiene una lista de columnas actualizadas en el desencadenador SQL Server?
- 15. Node.js: Cómo crear archivos XML
- 16. Cómo hacer un histograma de registro cronológico en python
- 17. ¿Hay una lista de banderas para Node.js?
- 18. ¿Cómo se obtiene una lista de cambios de un repositorio de Subversion por rango de fechas?
- 19. Cómo manejar errores en Node.js usando Express
- 20. ¿Cómo se usa less.js con node.js para ver archivos .less en una carpeta?
- 21. ¿Cómo se obtiene una cadena de consulta en Flask?
- 22. ¿Se recomienda construir un foro usando node.js?
- 23. Usando para siempre con Node.js
- 24. clasificación de Haskell de una lista no válida usando una orden de proxy
- 25. ordenar una lista por orden alfabético
- 26. Cómo abortar correctamente una cadena de promesa node.js usando Q?
- 27. Sqlalchemy obtiene las últimas X filas en orden
- 28. ¿Usando bigote.js junto con node.js?
- 29. Concatenar archivos JS usando ANT (manteniendo un orden específico)
- 30. Lista de módulos node.js cargados actualmente?
50th votes up ... – 981
getTime() undefined. – 981