Entwickler-Ecke
IO, XML und Registry - Dateinamen in Combobox anzeigen?
Christoph1972 - Sa 08.11.08 20:36
Titel: Dateinamen in Combobox anzeigen?
Hallo zusammen,
ich möchte eine Combobox mit den Dateien eines bestimmten Ordners füllen, dass funktioniert auch soweit. Nur möchte ich das der Dateiname ohne Verzeichnis usw. angezeigt wird. Dazu habe ich folgendes zusammengebaut:
C#-Quelltext
1: 2: 3: 4:
| foreach (Object FI in System.IO.Directory.GetFiles(@"C:\XMLTestFiles", "*xml*")) { cmbFiles.Items.Add(Convert.ToString(FI)); } |
So erhalte ich einen String den ich entsprechend bearbeiten kann. Was mich dabei jedoch etwas stört, ist das ich da ein Objekt in String konvertiere, ist das so überhaupt OK, oder ist es Zufall das es so funktioniert? Gibt es eventuell einen besseren Lösungsweg?
Christian S. - Sa 08.11.08 21:05
Prinzipiell hat jedes Objekt eine ToString-Methode (also z.B. FI.ToString()) und kann somit auch in einen String konvertiert werden. Wie sinnvoll diese String-Darstellung dann ist, ist unterschiedlich.
Da aber Directory.GetFiles() sowieso ein String[] zurückliefert, ist es Unsinn FI als Object zu deklarieren und dann in einen String zu konvertieren. Es ist ein String, also deklarier es auch direkt als solchen ;-)
JüTho - Sa 08.11.08 21:09
Hallo,
Du solltest es so machen:
C#-Quelltext
1: 2: 3: 4:
| foreach (string s in Directory.GetFiles(@"C:\XMLTestFiles", "*.xml*", true/false)) { cmbFiles.Items.Add(Path.GetFileName(s)); } |
Hinweise: Directory.GetFiles liefert ein
string-Array. Alles ist vom Typ object, also auch string; deshalb ist es tatsächlich Zufall. Wenn Du direkt string verwendest (was wegen des Rückgabewerts zulässig ist), brauchst Du nichts zu konvertieren. Convert.ToString() ist unüblich; normalerweise verwendet man (Variablenname).ToString().
Dein Variablenname lässt mich vermuten, dass Du mit
DirectoryInfo und/oder
FileInfo arbeiten wolltest. Das ist meistens umständlicher und nur dann sinnvoll bzw. notwendig, wenn Du weitere Informationen brauchst, die durch
File/Path/Directory-Methoden nicht zur Verfügung gestellt werden (z.B. die Dateigröße).
Gruß Jürgen
PS. Christian hat (während ich meine Antwort formulierte) das Wesentliche schon gesagt. Da ich noch etwas mehr Angaben mache, speichere ich meinen Text trotzdem.
Christoph1972 - Sa 08.11.08 21:47
Vielen Dank euch beiden! Mir war schon irgendwie klar dass es quatsch ist mit dem Objekt, ich habe es aber einfach nicht bemerkt.:roll: Na ja, ich sollte mal Feierabend machen, ich habe mittlerweile viereckige Augen :eyes:
Vielen Dank noch mal!
Gruß
Christoph
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!