Hallo zusammen,
Beim Rückgabewert der Methode FolderBrowserDialog.SelectedPath() wird am Ende des Strings ein Backslash ("\") mit angegeben, wenn ich ein Laufwerk (z.B. "C:") auswähle. Der Backslash wird weggelassen, wenn es sich bei der Wahl um einen Unterordner handelt. Wenn ich daraufhin mit dem ermittelten Pfad und entsprechender Methode "string[] Files = System.IO.Directory.GetFile(SelectedFolder)" die Files in einer string-Liste speichere und diese in einer Textbox ausgebe, erscheint vor dem Dateinamen dieser Backslash (wenn er nicht Teil des Folder-Strings ist); bzw erscheint nicht (wenn er zum Folder-String gehört).
Nochmal zur Verdeutlichung:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| void MyMethod(void) { ... folderBrowserDialog1.ShowDialog(); SelectedFolder = folderBrowserDialog1.SelectedPath; ... string[] Files = System.IO.Directory.GetFile(SelectedFolder); ... } |
Ergebnis:
Fall A:
-------
SelectedFolder == "C:\"
Files[]={
"test1.txt",
"test2.txt",
...
Fall B:
-------
SelectedFolder == "C:\Test"
Files[]={
"\subtest1.txt",
"\subtest2.txt",
...
Kann sein, daß das Thema bereits tausendfach diskutiert wurde, ich habe dazu aber nichts gefunden.
Kann ich ohne Stringmanipulationen des Verzeichnisnamens und der Dateinamen irgendetwas machen, um eine einheitliche Darstellungsweise zu bekommen, unabhängig davon, ob ich ein Laufwerk oder ein Unterverzeichnis aufrufe ?
Moderiert von
Kha: C#-Tags hinzugefügt