мне нужно, чтобы получить все файлы, присутствующие в каталоге и подкаталогах каталога и каждого файла есть дата добавления к файлу имя, как 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 }
Который работает, но не кажется хорошим решением, может кто-нибудь, дай мне знать, что будет лучшим способом SOT этого типа в списке?
Лучшее решение +1, возможно, требуется« обратная »! – dp7
@ dp7 да, спасибо за отзыв о 'reverse', обновлен. – mudasobwa
Он будет терпеть неудачу, если дата будет такой: 2016-8-03 – Thorin