對於一個給定的目錄,我如何在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