是否有固定/默认排序顺序,其中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