|
 |
 |

Frage: Wie kann ich prüfen, ob eine Datei auf dem Server schon existiert? |
Um zu prüfen, ob eine Datei schon existiert, verwendet man am besten die FileExists-Methode
des FSO. Diese Methode gibt den Wert True zurück, wenn die Datei existiert und den Wert False,
wenn die Datei nicht vorhanden ist.
Ein häufiger Einsatzzweck dieser Methode ist z.B.: die Prüfung, ob eine Datenbank vorhanden ist,
die dann später abgefragt werden soll.
Um den Code nicht für jede Datei neuschreiben zu müssen, schreiben wir eine kleine Funktion, die
als einzigen Parameter den Dateinamen (inkl. Pfad) erhält und ebenfalls True oder False zurückgibt.
Diese Funktion wiederum wird in eine Include-Datei geschrieben, damit sie auch in anderen Seiten
eingebunden werden kann.
[checkfile.inc]
<%
Private Function CheckFile(f_name)
' --- Erzeugen eines FSO-Objekts
Dim objFileSys
Set objFileSys = Server.CreateObject("Scripting.FileSystemObject")
If objFileSys.FileExists(f_name) Then
CheckFile = True
Else
CheckFile = False
End if
Set objFileSys = Nothing
End Function
%>
In einer ASP-Seite muss diese Include-Datei jetzt nur noch eingebunden werden und an der
entsprechenden Stelle noch ein Funktionsaufruf erfolgen.
[file.asp]
<!--#include file="checkfile.inc" //-->
<%
Dim FilePath
FilePath = Server.MapPath("./") & "\database\"
Dim FileName
FileName = "content.mdb"
If CheckFile(FilePath & FileName) Then
' --- Hier erfolgt die weitere Verarbeitung, da
' --- die Datenbank existiert und somit auch
' --- angesprochen werden kann.
...
Else
' --- Die Datei wurde nicht gefunden. Daher
' --- erfolgt hier eine Ausgabe der Fehlermeldung
Response.Write "Datei: " & FilePath & FileName & " wurde nicht gefunden."
End if
%>
Auf dem gleichen Weg kann man auch prüfen, ob ein bestimmtes Verzeichnis vorhanden ist.
Hierfür muss lediglich die Methode "FolderExists" des FSO anstatt "FileExists" verwendet werden.
[checkfolder.inc]
<%
Private Function CheckFolder(f_name)
' --- Erzeugen eines FSO-Objekts
Dim objFileSys
Set objFileSys = Server.CreateObject("Scripting.FileSystemObject")
If objFileSys.FolderExists(f_name) Then
CheckFolder = True
Else
CheckFolder = False
End if
Set objFileSys = Nothing
End Function
%>
Ansonsten kann hier genauso wie mit der Prüfung, ob eine Datei existiert, verfahren werden.
Man muss natürlich einen Verzeichnispfad, keinen Dateipfad an die Funktion übergeben.
[folder.asp]
<!--#include file="checkfolder.inc" //-->
<%
Dim FolderPath
FolderPath = Server.MapPath("./") & "\verzeichnis\"
If CheckFolder(FolderPath) Then
' --- Hier erfolgt die weitere Verarbeitung, da
' --- das Verzeichnis existiert und somit auch
' --- angesprochen werden kann.
...
Else
' --- Das Verzeichnis wurde nicht gefunden. Daher
' --- erfolgt hier eine Ausgabe der Fehlermeldung
Response.Write "Verzeichnis: " & FolderPath & " wurde nicht gefunden."
End if
%>
|
|
 |
 |
|
|