Home > Visual Basic Classic > Dateisystem > Prüfen ob Datei existiert / vorhanden ist

Prüfen ob Datei existiert / vorhanden ist

Veröffentlicht am 26.08.2008 von Sebastian Krogolewski

Artikelinformationen

Sprache:
Visual Basic 6
Datenbank:
keine

Artikel speichern

del.icioMister WongGoogleLinkarenaYiggSpurlFurl

Artikel bewerten

Bewertng:5.00 / 5 (3 mal bewertet)

Um zu überprüfen ob eine Datei existiert, gibt es mehrere Möglichkeiten. In diesem Artikel werden 2 dieser Möglichkeiten gezeigt. Einmal über das Scripting.FileSystemObject und als Alternative über die Win API Funktion PathFileExistsA bzw. PathFileExistsW und PathIsDirectoryA bzw. PathIsDirectoryA aus der Shlwapi.Dll.

 

Als erstes wird der Weg über das Scripting.FileSystemObject gezeigt. Diese Funktion benötigt einen Verweis auf die Microsoft Scripting Runtime.

VB Funktion
1
2
3
4
56
7
Private Function FileExists(ByVal uFileName As String) As Boolean
Dim fso As Scripting.FileSystemObject
 
Set fso = New Scripting.FileSystemObject
FileExists = fso.FileExists(uFileName)Set fso = Nothing
End Function

 

FileExists erwartet 1 Parameter:

uFileName: Der Pfad + Dateiname welcher überprüft werden soll.

 

Rückgabewert:

True: Datei ist vorhanden

False: Datei ist nicht vorhanden

 

 

und als Alternative dazu eine Funktion, welche die Win API Funktionen PathFileExistsA bzw. PathFileExistsW und PathIsDirectoryA bzw. PathIsDirectoryA verwendet.

MAX_PATH Konstante definieren:

1
Private Const MAX_PATH As Long = 260

 

Einbinden der beiden Win API Funktionen PathFileExistsA bzw. PathFileExistsW und PathIsDirectoryA bzw. PathIsDirectoryA aus der Shlwapi.Dll:

1
2
Private Declare Function PathFileExists Lib "shlwapi.dll" Alias "PathFileExistsA" (ByVal pszPath As String) As Long
Private Declare Function PathIsDirectory Lib "shlwapi.dll" Alias "PathIsDirectoryA" (ByVal pszPath As String) As Long

PathFileExistsA erwartet 1 Parameter:

pszPath: Zeiger auf einen String (mit NULL abschließend), in dem der zu überprüfende komplette Pfad eines Dateisystem Objekts steht. Max. Länge ist MAX_PATH.

 

Rückgabewert:

1: Datei existiert.

0: Datei ist nicht existent oder es ist ein Fehler aufgetreten. Zusätzliche Informationen zum aufgetretenen Fehler können mit GetLastError abgerufen werden.

 

 

PathIsDirectoryA erwartet 1 Parameter:

pszPath: Zeiger auf einen String (mit NULL abschließend), in dem der zu überprüfende Pfad steht. Max länge ist MAX_PATH.

 

Rückgabewert:

1: Pfad ist ein gültiges Verzeichnis.

0: Pfad ist kein gültiges Verzeichnis.

 

Funktion:

VB Funktion
1
2
3
4
56
Private Function FileExists(ByVal uFileName As String) As Boolean
 
'Wenn uFilename kein gültiges Verzeichnis ist aber der Pfad zum Dateisystemobjekt existent
'dann ist es eine Datei die auch vorhanden ist
FileExists = ((PathFileExists(uFileName) <> 0) And (PathIsDirectory(uFileName) = 0))End Function

 

Für beide Funktionen gilt folgender Beispielaufruf:

Beispiel Aufruf
1
2
3
4
5
If (FileExists("C:\Dokumente und Einstellungen\Benutzer\Eigene Dateien\test.txt")) Then
    MsgBox "Datei ist vorhanden"
Else
    MsgBox "Datei ist nicht vorhanden"
End If

Downloads

Suchbegriffe

VB6, Visual Basic, FileExists, PathFileExistsA, PathFileExistsW

Suche