Есть ли фиксированный порядок сортировки по умолчанию, в котором Dir.entries
возвращает результаты? По опыту я знаю, что первые две записи: "."
и ".."
.Порядок сортировки в `Dir.entries`
ответ
В соответствии с документами на языке Ruby, Dir.entries()
не гарантирует какой-либо конкретный порядок перечисленных файлов, поэтому, если вам требуется какой-то заказ, лучше всего сделать это явно.
Например, если вам нужно сортировать по времени модификации файла (от старого к новому), вы можете сделать следующее:
Dir.entries('.').sort_by { |x| File.mtime(x) }
Я думаю, что сортировка по умолчанию не выбрана, но вы можете использовать Dir.entries('some_path_to_dir').sort
, чтобы отсортировать их по ASC-способу.
Привет .. спасибо. Причина моего запроса заключается в том, что в моем рабочем месте уже есть код (в системе на моем рабочем месте), который предполагает, что Dir.entries() вернет данные в определенном порядке (по возрастанию-последнему-измененному дате). Таким образом, я не был уверен, что я должен придерживаться этого или изменить его, чтобы быть уверенным в заказе. –
Развивая ответ @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}"
Для других, кто может прийти сюда с тем же сомнением. Способ выбрать только те файлы, которые соответствуют регулярному выражению и по-прежнему иметь возможность сортировать их так, как вы хотите это:
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. mysql порядок сортировки сортировки
- 2. порядок сортировки в SQLite
- 3. Порядок сортировки в NSTableView
- 4. Порядок сортировки в SSRS
- 5. Порядок сортировки сортировки по указателю
- 6. Каков порядок сортировки document.cookie?
- 7. Flex SelectedItem порядок сортировки
- 8. Magento порядок сортировки
- 9. HTML5 LocalStorage порядок сортировки
- 10. Условный пролог Порядок сортировки
- 11. Spring pagingAndSortingRopository порядок сортировки
- 12. Perl: пользовательский порядок сортировки?
- 13. Порядок сортировки фаллоидов Elasticsearch
- 14. key = operator.attrgetter порядок сортировки?
- 15. Apache SOLR порядок сортировки
- 16. Порядок сортировки наборов данных
- 17. Устойчивый порядок сортировки JavaScript
- 18. Порядок сортировки данных QJson
- 19. Порядок сортировки MySQL - сортировка?
- 20. msaccess порядок сортировки
- 21. Порядок сортировки объектов SSMS?
- 22. Порядок сортировки XNA-спрайтов
- 23. mysql output порядок сортировки
- 24. Порядок сортировки записей
- 25. SQL собственный порядок сортировки
- 26. Сложный массив порядок сортировки
- 27. NumPy savetxt порядок сортировки
- 28. Пользовательский порядок сортировки списка
- 29. rsort порядок сортировки
- 30. Elasticsearch явный порядок сортировки
Или '.sort_by {| a | File.stat (a) .mtime} ', чтобы пропустить несколько вызовов' stat'. –
Или '.sort_by {| a | File.mtime (a)} ', чтобы пропустить несколько« File :: Stat ». – cremno