Die Fragen nach der Existenz einer Datei, eines Verzeichnisses
oder eines Laufwerks sind gar nicht so einfach zu beantworten. Weder
Visual Basic noch das API stellen entsprechende Funktionen zur
Verfügung.
Mit der Funktion ExistFileDirDrive können Sie die Existenz
sowohl von Dateien, Verzeichnissen als auch Laufwerken prüfen. Bei
der Prüfung der Existenz eines Verzeichnisses ist es egal, ob der
übergebene Pfadname mit einem Backslash "\" abschließt
oder nicht. Die Funktion kommt auch ohne weiteres mit
UNC-Pfadangaben zurecht.
Zur Prüfung der Existenz eines Laufwerks können Sie nicht nur
"nackte" Laufwerksbuchstaben oder Laufwerksbuchstaben plus
Doppelpunkt zur Prüfung übergeben, sondern auch beliebige
Verzeichnis- oder Datei-Pfade - existiert ein Verzeichnis oder eine
Datei, existiert zwangsläufig auch das Laufwerk. Das gilt
natürlich auch bei der Frage nach der Existenz eines Pfades -
existiert eine Datei in einem Pfad, existiert ebenso das
Verzeichnis, in dem sie sich befindet. Die letzten beiden
Anmerkungen mögen Ihnen zwar trivial und überflüssig vorkommen -
aber manchmal kommt man einfach nicht auf die trivialsten Lösungen,
oder...?
Im Gegensatz zu vielen Lösungen, die bei der Prüfung der
Existenz einer Datei diese zu öffnen versuchen, greift die Funktion
ExistFileDirDrive auf die Dateiattribute zu ( GetAttr).
Damit werden Probleme mit Dateisperrungen, zufälliger Erzeugung
doch noch nicht vorhandener Dateien und mit den Zeitattributen
(Anlegen, letzte Modifikation) vermieden.
Function ExistFileDirDrive(FilePathName As String) As Boolean
Dim nTest As String
nTest = LCase$(FilePathName)
If Len(nTest) = 1 Then
Select Case Left$(nTest, 1)
Case "a" To "z"
nTest = FilePathName & ":\"
End Select
ElseIf Len(nTest) = 2 Then
Select Case Left$(nTest, 2)
Case "a:" To "z:"
nTest = FilePathName & "\"
End Select
End If
On Error Resume Next
ExistFileDirDrive = CBool(GetAttr(nTest) Or vbNormal _
Or vbHidden Or vbSystem Or vbArchive Or vbDirectory)
End Function
 |
Mit der Funktion ExistFileDirDrive prüfen
Sie, ob eine Datei, ein Verzeichnis oder ein Laufwerk
vorhanden ist

|

Korrekturen und Ergänzungen:
05.10.1999: Korrektur der Parameter-Prüfung in ExistFileDirDrive
|