Benutzer mit den meisten Antworten
FileInfo nach CreationDate sortieren in C#

Frage
-
Hallo zusammen,
ich muss aus einer List<FileInfo> die Datei mit dem ältesten CreationDate herausfinden. Mein Gedanke wäre, die Liste nach CreationDate zu sortieren und dann das erste/letzte FileInfo-Objekt zurückzugeben. Meine Frage: Ist das so möglich bzw. hat jemand evtl. ein Beispiel für diesen Fall?
Vielen Dank
Update-Troubleshooter
Antworten
-
Hallo Update-Troubleshooter,
das könnte man z.B. mit Linq erledigen.
Beispiel:
files = di.GetFiles(); var sorted = files.OrderBy(f => f.CreationTime); foreach (var item in sorted) { Console.WriteLine(item.Name); }
In meinem Beispiel habe ich nicht List<Fileinfo> verwendet sondern Fileinfo[] da ich ein solches Array direkt aus einem DirectoryInfo erzeugen kann. Mit List<Fileinfo> kann die sortierung aber in gleicher weise erfolgen.
Grüße
Roland
- Als Antwort markiert Update-Troubleshooter Dienstag, 13. Juni 2017 06:59
Alle Antworten
-
Hallo Update-Troubleshooter,
das könnte man z.B. mit Linq erledigen.
Beispiel:
files = di.GetFiles(); var sorted = files.OrderBy(f => f.CreationTime); foreach (var item in sorted) { Console.WriteLine(item.Name); }
In meinem Beispiel habe ich nicht List<Fileinfo> verwendet sondern Fileinfo[] da ich ein solches Array direkt aus einem DirectoryInfo erzeugen kann. Mit List<Fileinfo> kann die sortierung aber in gleicher weise erfolgen.
Grüße
Roland
- Als Antwort markiert Update-Troubleshooter Dienstag, 13. Juni 2017 06:59
-
Alternativ kannst Du auch mit der Sort Methode von List<> sortieren, hierzu musst Du aber einen eigenen Comparer implementieren. Falls Du diese Variante vor ziehst kann ich Dir auc dazu ein Beispiel zeigen.
Die Linq Variante ist jedoch die einfachere.
Grüße
Roland
-
Hallo,
bei gegebener List<FileInfo> fileInfos könntest du auch so vorgehen:
DateTime gesuchtesDatum = fileInfos.Min(fileInfo => fileInfo.CreationTime); var alteDateien = fileInfos.Where(fi => fi.CreationTime == gesuchtesDatum).ToList();
Zuerst ermittelst du das älteste Datum und nimmst dann die Datei(en) auf die das Datum zutrifft.
Gruß
- Bearbeitet K. Pater Dienstag, 13. Juni 2017 07:01