是否有固定/默認排序順序,其中Dir.entries
返回結果?根據經驗我知道前兩項是"."
和".."
。'Dir.entries`中的排序順序
16
A
回答
15
根據Ruby語言文檔,Dir.entries()
不保證列出文件的任何特定順序,所以如果您需要某些命令,最好自己明確地執行它。
例如,如果你需要的文件修改的時間(最舊到最新)進行排序,你可以做到以下幾點:
Dir.entries('.').sort_by { |x| File.mtime(x) }
8
我認爲沒有默認的排序順序,但您可以使用Dir.entries('some_path_to_dir').sort
以ASC方式對它們進行排序。
+0
嗨..感謝這樣做。我問的原因是已經有一些代碼(在我的工作地點的系統中),它假定Dir.entries()將以特定順序(升序 - 最後修改日期)返回數據。所以,我不確定是否應該堅持或者改變它以確定訂單。 –
0
擴展在@maerics的回答,下面忽略. && ..
,基於正則表達式過濾器,並根據需要選擇最新的文件。
Dir.chdir(in_dir)
target_file = Dir.entries(in_dir).select(|x|
x != '.' &&
x != '..' &&
x =~ /\somefile.txt\z/).sort_by{|f|File.mtime(f)}.last(1)
puts "here i am #{target_file}"
0
對於其他人可能來到這裏有相同的疑問。只選擇匹配正則表達式的文件,仍然能夠對它們進行排序,你所希望的方式的方式是:根據你想怎麼
files_sorted_by_date = Dir["your regex"].sort_by { |x| File.birthtime(x) }.reverse
或
files_sorted_by_date = Dir["your regex"].sort_by { |x| File.birthtime(x) }
您文件排序。
我不能使用Dir.entries方法
相關問題
- 1. 排序順序
- 2. 排序順序
- 3. 排序排列順序
- 4. c排隊,排序順序
- 5. JS排序特定的排序順序
- 6. HTMLElement.getClientRects()排序順序
- 7. 排序順序table.getRows
- 8. Dojox.grid.datagrid排序順序
- 9. NSTableView排序順序
- 10. 排序順序SQL
- 11. LINQ2SQL排序順序
- 12. rsort排序順序
- 13. 重排排順序
- 14. 按聚合順序排列的順序
- 15. aspnet_Users表的排序順序
- 16. 文件的排序順序
- 17. 顛倒排序的順序
- 18. HTML5 localStorage的排序順序
- 19. Magento的排序順序
- 20. 排序表的順序不按字母順序排列
- 21. 如何按順序排序和排序順序排列相同的列
- 22. JQuery UI排序顯示排序順序
- 23. Gridview中的排序順序下拉
- 24. 表中的自定義排序順序
- 25. C#中的XmlSchemaElement排序順序
- 26. Scala中的重新排序順序
- 27. 在MySQL中的順序排序
- 28. Oracle中的時間戳排序順序
- 29. 排序陣列中的特定順序
- 30. 識別表格中的排序順序
或'.sort_by {| a | File.stat(a).mtime}'來跳過一些'stat'調用。 –
或'.sort_by {| a | File.mtime(a)}'跳過一些'File :: Stat'分配。 – cremno