【发布时间】:2016-12-13 06:28:34
【问题描述】:
我需要获取目录和子目录中存在的所有文件,并且每个文件都有日期附加到文件名,如 product_log_2016-11-17.txt
为了获取我使用的目录中存在的文件列表
all_logs = Dir["#{Rails.root}/log/product_logs/**/*.txt"]
它会像这样返回完整路径文件(我已经从每个条目中删除了我的系统路径:
[
"/log/product_logs/new_2/product_log_2016-11-17.txt",
"/log/product_logs/new_2/products_log_2016-11-03.txt",
"/log/product_logs/new_1/products_log_2016-10-04.txt",
"/log/product_logs/new_1/product_log_2016-11-17.txt",
"/log/product_logs/new_1/products_log_2016-11-03.txt"
]
但我想像这样按日期排序:
[
"/log/product_logs/new_2/product_log_2016-11-17.txt",
"/log/product_logs/new_1/product_log_2016-11-17.txt",
"/log/product_logs/new_2/products_log_2016-11-03.txt",
"/log/product_logs/new_1/products_log_2016-11-03.txt",
"/log/product_logs/new_1/products_log_2016-10-04.txt"
]
我试过这样:
all_logs.sort{|a, b|b.split("/").last.split("_").last.split(".").first <=>a.split("/").last.split("_").last.split(".").first }
哪个有效,但似乎不是一个好的解决方案,谁能告诉我什么是排序这种类型列表的最佳方法?
【问题讨论】:
标签: ruby-on-rails arrays ruby sorting