Я пытался написать скрипт Ruby для поиска и удаления самого старого файла AVI в папке. Я нашел script in Python, что очень близко, и я получил хороший старт на решение Руби себя с:Найти и удалить старый AVI-файл рекурсивно
require 'fileutils'
stat = Sys::Filesystem.stat("/")
mb_available = stat.block_size * stat.blocks_available/1024/1024
#if there is less than 130MB free
if mb_available < 130000
require 'find'
movie_file_paths = []
#grab all the files in the folder
Find.find('/Users/jody/Movies') do |path|
movie_file_paths << path if /.*\.avi/.match(path) != nil
end
end
Но, у меня трудное время с остальными. Любая помощь будет оценена!
EDIT:
Это было решение:
movie_file_paths = []
Dir.glob("/Users/jody/Movies/**/*.avi").each { |file| movie_file_paths << file if File.file? file }
movie_file_paths.sort_by {|f| File.mtime(f)}
deleteme = movie_file_paths.first
Я только что видел ваше решение; 'movie_file_paths.sort_by {| f | File.mtime (f)} 'does * NOT * модифицирует массив' movie_file_paths'. Он возвращает новый отсортированный массив. Вы должны сделать: 'movies = movie_file_paths.sort_by {| f | File.mtime (f)} ' ' deleteme = movies.first' – rohit89