Autor Beitrag
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Sa 23.09.06 11:17 
Hallo,

ich musste jetzt eine Dateiliste sortiert bearbeiten. Die konkrete Lösung war einfach (hier sehr verkürzt dargestellt):
  • FileInfo[] als Liste deklarieren
  • Inhalte durch DirectoryInfo.GetFiles() einlesen
  • Eigene Sortierung IComparer() erzeugen, die auf fi.Name zurückgreift
Dann konnte ich die Dateiliste sortieren und nutzen.

Auch mein Zusatzproblem, nur einen Teil der Dateien zu bearbeiten, konnte ich lösen:
  • ArrayList als variable Liste erzeugen
  • FileInfo[] einlesen (wie oben)
  • einzelne Dateien übergehen, alle anderen in die ArrayList als FileInfo eintragen
Danach konnte ich auch die ArrayList nach dem Namen sortieren.

Diese Aufgaben könnten verallgemeinert und erweitert werden zu einer neuen Klasse:
  • FileInfoList, abgeleitet von ArrayList
  • nur Einträge vom Typ FileInfo werden eingetragen
  • der Aufruf erfolgt analog zu DirectoryInfo.GetFiles()
  • einzelne Dateien könnten durch einen Delegate 'unterdrückt' werden
  • die Sortierung muss wahlweise nach Name/Typ/FileSize/FileDate und asc/desc erfolgen

Hat jemand schon eine solche Lösung erarbeitet oder gesehen? Gibt es Interesse an einer solchen Klasse, die über die C#-Library zur Verfügung gestellt werden könnte?

Danke für Anmerkungen, Anregungen oder Tipps! Jürgen
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 23.09.06 11:24 
Hallo!

Ich denke, eine solche Klasse würde besser in die OpenSource-Units passen. Auf die Verwendung von Arrays oder ArrayList würde ich allerdings vollständig verzichten und stattdessen List<FileInfo> verwenden. Das ist typensicher und schnell.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
JüTho Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Sa 23.09.06 12:46 
Hallo Christian,

danke für Deine Anmerkungen.
user profile iconChristian S. hat folgendes geschrieben:
Ich denke, eine solche Klasse würde besser in die OpenSource-Units passen.
Da kannst Du recht haben. Zunächst geht es mir um das Thema an sich; und da gehört es ja wohl zum Namespace System.IO.

user profile iconChristian S. hat folgendes geschrieben:
Auf die Verwendung von Arrays oder ArrayList würde ich allerdings vollständig verzichten und stattdessen List<FileInfo> verwenden. Das ist typensicher und schnell.

Ah ja... Seit ich mich vor etwa vier Wochen mit NET 2.0 beschäftige, sehe ich immer wieder diese Typ-Deklarationen mit den spitzen Klammern; aber bisher habe ich noch keine vernünftige (verständliche) Erklärung gefunden, was und vor allem wie man damit arbeitet. Das (und Manifest und Ressourcen) gehört zu meinem Thema "Tutorial gesucht"; und für so etwas Grundsätzliches fehlt mir bisher die Zeit.

Jetzt habe ich einen Grund dafür. Danke für diesen Hinweis! Jürgen