2011-01-20 22 views
6

Mam tablicę nazw plików, czy istnieje sposób sortowania tych plików według daty modyfikacji?Tworzenie tablicy plików i sortowanie według daty w ruby ​​

+0

Dostępne są dwa czasy modyfikacji. 'File.mtime' vs.' File.ctime', z subtelną różnicą między tymi dwoma. –

+0

@tinMan: "File.ctime" odnosi się do czasu utworzenia pliku, a nie modyfikacji. –

+1

Absolutnie nie. '" Zwraca czas zmiany podanego pliku (czas, w którym informacje o katalogu dotyczące pliku zostały zmienione, a nie sam plik). '' Tylko system Windows obsługuje datę utworzenia pliku. * nix rozumie tylko czasy modyfikacji. –

Odpowiedz

15

Można użyć metody sort_by w połączeniu z metodą File.mtime, która zwraca ostatni czas modyfikacji danego pliku.

filenames.sort_by {|filename| File.mtime(filename) } 
+2

Zauważ, że 'sort_by' nie modyfikuje odbiornika, ale zamiast tego zwraca nową tablicę, więc będziesz chciał użyć wyniku bezpośrednio (np.' Names.sort_by {...} .each {...} ') lub zapisz wynik (np. 'sorted = names.sort_by {...}'). Ruby 1.9.2 dodał "sort_by!", Aby zmodyfikować tablicę w miejscu. – Phrogz

Powiązane problemy