Entwickler-Ecke

WinForms - Frage zur Enumeration FileAttributes


Exabyte - Fr 26.08.11 19:58
Titel: Frage zur Enumeration FileAttributes
Hallo zusammen,

ich wollte gerade einen kleinen Windows Explorer Programmieren. Dabei wollte ich eigentlich folgenden Code verwenden:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
        private void lstFiles_DoubleClick(object sender, EventArgs e)
        {
            if (File.GetAttributes((string)lstFiles.SelectedItem) == FileAttributes.Directory)
            {
                ListeAktualisieren(Directory.GetFileSystemEntries((string)lstFiles.SelectedItem));
            }
        }


Beim Doppelklicken sollen die Dateien / Verzeichnisse des angeklickten Verzeichnisses in die Liste kopiert werden. Der Code funktioniert so leider nicht, ich habe leider keine Ahnung wieso. Ich weiss, ich könnte ihn im Prinzip auch einfach mit einer Exception realisieren, aber interessieren würde mich das Problem dennoch :D .


Yogu - Fr 26.08.11 20:07

user profile iconExabyte hat folgendes geschrieben Zum zitierten Posting springen:
Der Code funktioniert so leider nicht, ich habe leider keine Ahnung wieso.

Das ist normal, das passiert jedem Programmierer mehrmals stündlich. Macht aber gar nichts, dann muss man eben debuggen. :)

Setze einfach mal einen Haltepunkt an die Stelle der if-Abfrage, und schau, ob der in einen String umgewandelte Pfad stimmt, und wenn ja, schau dir den Rückgabewert von File.GetAttributes an. Das geht alles sehr einfach mit dem Überwachte-Ausdrücke-Fenster.

Grüße,
Yogu


Exabyte - Fr 26.08.11 22:29

Hallo, ich denke ich könnte das Problem lösen, in dem ich in das entsprechende Verzeichnis mit einer relativen Pfadangabe wechsle. Aber wie geht das genau? Was bedeutet z.B. die Angabe "..\\..\\" oder "..", mir ist nicht ganz klar, wie ich die Punkte bzw. die Backslahses zu interpretieren habe?


Kha - Sa 27.08.11 11:15

Absolute Pfadangaben sind auf jeden Fall die bessere Variante, siehe auch Path.Combine.