2017-01-25 2 views
0

Ich habe eine Liste von Dateien und ich würde sie zu einer Gruppe wie nach dem Datum der letzten Änderung nach dem Jahr und Monat der ÄnderungScala - Wie gruppiert man Dateien nach dem letzten Änderungsdatum?

Ich habe versucht, wie etwas zu tun:

val format = new SimpleDateFormat("yyyyMM") 
files.groupBy(f=> format.format((f.lastModified()))) 

wenn Dateien ist eine Liste vom Typ Datei.

Ich mache das zum Spaß ... mein Ziel ist es, in der Lage zu sein, alle Dateien zu nehmen und in Ordnern nach dem Jahr und Datum der letzten Änderung/Erstellung (ich habe gesehen, dass nicht alle OS hat eine Dateien für die Erstellungszeit und das ist, warum ich die zuletzt geändert habe)

+1

[Diese Antwort] (http://stackoverflow.com/a/32955978/1870803) macht was Sie wollen. –

+0

@YuvalItzchakov danke für die Antwort. Ich hatte gehofft, eine Lösung zu finden, die die Kraft des funktionalen Teils von Scala verwendet. – boaz

+0

Was meinst du mit * nutzt die Macht des funktionalen Teils von Scala *? Das ist eine einzelne Codezeile, die einen einzelnen Lambda-Ausdruck als Vergleicher enthält. Sieht mir gut aus :). –

Antwort

1

Der Code, den Sie gepostet haben, tut genau, was Sie wollen. weisen Sie einfach das Ergebnis der groupBy Betrieb bis zu einem gewissen Variable, so dass Sie mit ihm arbeiten können:

val grouped = files.groupBy(f=> format.format((f.lastModified()))) 

Diese Sie Ihre Dateien einen Map[String,List[File]] gibt in einer Liste sind unter der Annahme. Die Schlüssel sind Ihre formatierten Daten (z. B. "201701") und die Werte die jeweiligen Listen von Dateien.

Verwandte Themen