Directory.GetrFiles Frage

30/12/2009 - 16:19 von AWaning | Report spam
Hallo

ich möchte gern Files aus einem Verzeichnis lesen and dann in einer Liste
anzeigen.

Zur Zeit habe ich das mit der Funktion Directory.GetFiles () realisiert.

Mein Problem ist, dass die Files nach Filename sortiert in die Liste
eingetragen wird.

Jetzt möchte ich gern die Sortierung nach z.B Erstellungsdatum haben.

Wie könnte ich sowas mit .Net2.0 realisieren ?
(Mit Linq könnte ich das einfach lösen, kann ich aber leider nicht
verwenden)


Gibt es eine andere Funktion um Files aus einem Verzeichnis zulesen, mit
einer Sortierangabe ?


Danke für jeden Tip,
Andreas
 

Lesen sie die antworten

#1 Marvin Massih
30/12/2009 - 16:37 | Warnen spam
Hallo Andreas,

AWaning schrieb:
ich möchte gern Files aus einem Verzeichnis lesen and dann in einer Liste
anzeigen.



Dann bietet es sich evtl. an, die Sortierung in der GUI selbst machen zu
lassen. Je nach verwendeter Komponente gibt es dort verschiedene
Möglichkeiten, das zu realisieren.

Zur Zeit habe ich das mit der Funktion Directory.GetFiles () realisiert.

Mein Problem ist, dass die Files nach Filename sortiert in die Liste
eingetragen wird.

Jetzt möchte ich gern die Sortierung nach z.B Erstellungsdatum haben.

Wie könnte ich sowas mit .Net2.0 realisieren ?



Für den Fall, dass Du es nicht in der GUI machen möchtest, hier mal zwei
Varianten (die Lambda-Schreibweise ist erst ab C# 3.0 unterstützt, der
erzeugte Code ist jedoch kompatibel zu .NET 2.0):

public IList<FileInfo> GetFiles1( DirectoryInfo dir )
{
FileInfo[] files = dir.GetFiles( );
Array.Sort( files, delegate( FileInfo file1, FileInfo file2 )
{
return DateTime.Compare(
file1.CreationTime, file2.CreationTime
);
}
);
return files;
}

public IList<FileInfo> GetFiles2( DirectoryInfo dir )
{
List<FileInfo> files = new List<FileInfo>( dir.GetFiles( ) );
files.Sort( ( file1, file2 ) =>
file1.CreationTime.CompareTo( file2.CreationTime ) );
return files;
}

Natürlich kannst Du die Lambda-Schreibweise auch mit Array.Sort
verwenden und umgekehrt.

Viele Grüße

Marvin

Marvin Massih | http://www.marvin-massih.de

Ähnliche fragen