FileDialog: Prüfen ob Auswahl eine Datei oder ein Ordner ist

07/02/2008 - 09:29 von Alexander Früh | Report spam
Hallo NG,

folgendes Problem: Mein Benutzer kann über den FileDialog eine Datei,
mehrere Dateien oder einen Ordner auswàhlen. Die Auswahl ist dann in
.SelectedItems hinterlegt. Da ich die Dateinamen benötige, muss ich ja bei
Auswahl eines Ordners erst dessen Inhalt auslesen.
Dazu muss aber zuerst prüfen, ob die Auswahl eine Datei oder ein Ordner ist.
Darin habe ich bislang kein allzu großes Problem gesehen.
Ich wollte mit

If Dir(.SelectedItems(1), vbDirectory) <> "" Then
Befehl 1
Else: Befehl 2
End If

die Unterscheidung durchführen und war auch der Meinung, dass das so
funktioniert. Ich meine ich hààte das sogar schon mal so gemacht.
Komischerweise funzt das aber nicht. Es wird immer Befehl 1 ausgeführt, egal
ob .SelectedItems(1) eine Datei oder ein Ordner ist.
OH und Google haben mich nicht wirklich weitergebracht.
Die Lösung ist mit Sicherheit ganz simpel, aber ich komm nicht drauf (wie
war das mit dem Wald und den Bàumen). Wer von Euch làsst sich auf so ein
unterirdisches Niveau herab und hilft mir. :-)
Vielen Dank schon mal im Voraus.

Gruß Alex
 

Lesen sie die antworten

#1 stefan onken
07/02/2008 - 12:03 | Warnen spam
On 7 Feb., 09:29, Alexander Früh
wrote:
Hallo NG,

folgendes Problem: Mein Benutzer kann über den FileDialog eine Datei,
mehrere Dateien oder einen Ordner auswàhlen. Die Auswahl ist dann in
.SelectedItems hinterlegt. Da ich die Dateinamen benötige, muss ich ja bei
Auswahl eines Ordners erst dessen Inhalt auslesen.
Dazu muss aber zuerst prüfen, ob die Auswahl eine Datei oder ein Ordner ist.
Darin habe ich bislang kein allzu großes Problem gesehen.
Ich wollte mit

        If Dir(.SelectedItems(1), vbDirectory) <> "" Then
               Befehl 1
        Else: Befehl 2
        End If

die Unterscheidung durchführen und war auch der Meinung, dass das so
funktioniert. Ich meine ich hààte das sogar schon mal so gemacht.
Komischerweise funzt das aber nicht. Es wird immer Befehl 1 ausgeführt, egal
ob .SelectedItems(1) eine Datei oder ein Ordner ist.
OH und Google haben mich nicht wirklich weitergebracht.
Die Lösung ist mit Sicherheit ganz simpel, aber ich komm nicht drauf (wie
war das mit dem Wald und den Bàumen). Wer von Euch làsst sich auf so ein
unterirdisches Niveau herab und hilft mir. :-)
Vielen Dank schon mal im Voraus.

Gruß Alex



hallo Alex,
auf die Weise kannst du das nicht prüfen. Dir prüft mit vbDirectory,
ob es sich um eine Datei oder ein Verzeichnis handelt, ohne
vbDirectory nur auf Datei.
Dir("D:\test\123.xls", vbDirectory) ergibt 123.xls , weil die Datei
existiert
Dir("D:\test\", vbDirectory) ergibt . weil auch in einem Verzeichnis
ohne Dateien die Verzeichnisse . und .. existieren
Dir("D:\test", vbDirectory) ergibt test, wenn das Verzeichnis
existiert

In der Hilfe zu Dir findest du, wie die Verzeichnis-Prüfung gemacht
werden kann:
If (GetAttr(Pfad1 & Name1) And vbDirectory) = vbDirectory Then

Gruß
stefan

Ähnliche fragen