对于一个给定的目录,我如何在Node.JS中按时间顺序(按日期修改)获取文件列表?我在文件系统文档中没有看到任何内容。使用Node.JS,你如何获得按时间顺序排列的文件列表?
27
A
回答
68
给这个一杆。
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();
});
我使用了“同步”版本的方法。你应该根据需要使它们异步。 (也许只是readdir
一部分。)
你也许可以提高性能一点,如果你缓存统计信息。
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; });
0
你试过fs.readdir()
?
0
我结束了使用下划线,因为有机会考虑用于排序的统计数据。
1日使用files = fs.readFileSync(directory);
(你可能想尝试的情况下,目录抓犯错不存在或读取权限)
然后将它们传递给函数类似下面的一个获得该目录中的文件。这将返回您的有序列表。
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();
}
下划线sort by asc by default。我按照降序顺序将其撤消。
您可以决定按其他属性排序(check node fs documentation here)。我选择使用ctime,因为它应该解释为“触摸”文件。
Hope help,
相关问题
- 1. 在node.js中按时间顺序排序列表
- 2. C#列表按时间倒序按时间顺序排序
- 3. SQL查询按时间顺序排列的事件列表
- 4. 使用grunt按顺序排列文件
- 5. 按字母顺序排列的链表不按顺序排列
- 6. MYSQL按日期时间顺序排序而不是按时间顺序排列
- 7. 如何将无序点排序为按时间排序的顺序列表?
- 8. PHP(文件夹)按字母顺序排列的文件列表?
- 9. Google图表时间轴不是按时间顺序排列的
- 10. 如何按时间顺序排列时间数组?
- 11. 如何获得按特定顺序排列的功率?
- 12. 按时间顺序排列评论列表
- 13. 按时间顺序排列日期列表?
- 14. 重新排列包含按时间顺序日期列表
- 15. 如何编写按列按列编排顺序排列的列表?
- 16. 如何按顺序排序和排序顺序排列相同的列
- 17. 使用jQuery按字母顺序排列列表中的列?
- 18. 按时间顺序排列的顺序 - PHP
- 19. 如何使用Java按字母顺序排序链接列表?
- 20. 按顺序排列
- 21. 如何获取按时间戳排序的目录文件列表?
- 22. 如何动画按时间顺序排列的matplotlib图
- 23. 按字母顺序排列Wordpress列表
- 24. 按字母顺序排列2D列表?
- 25. 按字母顺序排列列表项
- 26. 列表Levenshtein按顺序排列PHP
- 27. C:按字母顺序排列列表
- 28. 按照反向时间顺序排列对象的Javascript排序
- 29. 按时间顺序对散列图阵列进行排序
- 30. 按日期排序列表,然后按最新顺序排列
第50张投票... – 981
getTime()未定义。 – 981