VisualBasic prüfen ob Datei vorhanden ist

ichbinsdoch

Ensign
Registriert
Sep. 2005
Beiträge
170
Hallo zusammen!

Ich stecke mal wieder fest. Mit einer kleinen Datei namens loesch.vbs soll eine übergebene Datei gelöscht werden. Klappt auch prima. Leider ist die Datei manchmal schon von anderer Stelle gelöscht worden und dann erscheint natürlich eine Fehlermeldung. Wie kann denn geprüft werden, ob die Datei noch existiert?

Hierm mal der bisherige Inhalt des Scripts:

Set WshShell = WScript.CreateObject("WScript.Shell")
Set Args = WScript.Arguments
v1 = Wscript.Arguments(0)
v = "H:\csv\" & v1 & ".txt"

Set fso = CreateObject("Scripting.FileSystemObject")
fso.GetFile(v).Delete


Gruß

eddi
 
ne file_exist funktion sollte visualbasic doch auch haben? :>
 
Auf Google wär ich selber ja nie gekommen. :mad:
Ich frag ja, weil da einfach nix zu finden ist, was auch läuft.

1.
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshFso = CreateObject("Scripting.FileSystemObject")
If WshFso.FileExist("h:\test.txt") then
WScript.Echo "Datei gefunden"
Else
WScript.Echo "Datei nicht gefunden"
End If

MELDET: das Objekt unterstützt diese Methode nicht: WshFso.fileexist

2.
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
if fso.FileExists("h:\Test.txt") then
Response.Write("Datei h:\Test.txt existiert")
else
Response.Write("Datei h:\Test.txt existiert nicht")
end if
Set fso = nothing

MELDET: Response Objet fehlt

Nur mal 2 Beispiele aus meinem Testlauf. Aus letzterem hab ich dann dieses response.write entfernt und durch ne msgbox ersetzt; dann klappts.
Sieht dann fertig so aus:

Set WshShell = WScript.CreateObject("WScript.Shell")
Set Args = WScript.Arguments
v1 = Wscript.Arguments(0)
v = "H:\csv\" & v1 & ".txt"

Set fso = CreateObject("Scripting.FileSystemObject")
if fso.FileExists(v) then
fso.GetFile(v).Delete
end if
Set fso = nothing


Jetzt hab ich gestern und heute zus. rund 4 Stunden invetiert, bloß um zu prüfen ob ne Datei existiert! :mad:

gruß
eddi
 
Zuletzt bearbeitet: (ist spät! lauter Fehler geschrieben)
Sekunde mal, wenn du uns den Code postest der nicht läuft und du fragst was daran falsch ist, ist das was anderes als "macht mal bitte den code für mich". Es ist was anderes wenn du sagst "Ich hab Probleme mit FileExists" anstatt "Wie kann ich überprüfen, ob eine Datei vorhanden ist?".
 
Also, ich wusste ja noch gar nicht wie das geht. Im Netz hab ich schon ne Menge Lösungen gefunden, aber NIX hat auch wirklich funktioniert. Manches davon lief in Excel, nicht aber als *vbs. So ging's mir auch, bis mal ein Befehl zum Löschen gefunden.
Da ich nun verschiedenes als Ansatz gesehen und keine guten VB-Kenntnisse habe, wusste ich auch nicht wo ich da überhaupt ansetzen soll.
Also nix für ungut. Nach stundenlanger Suche für so ne einfache Funktion gingen mir echt die Ideen aus!

gruß

eddi
 
Somit klappts bei mir:

filespec = "h:\test.txt"

WScript.Echo ReportFileStatus(filespec)

Function ReportFileStatus(filespec)
Dim fso, msg
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists(filespec)) Then
msg = filespec & " exists."
Else
msg = filespec & " doesn't exist."
End If
ReportFileStatus = msg
End Function

Quelle: http://msdn.microsoft.com/en-us/library/x23stk5t(VS.85).aspx
 
Zuletzt bearbeitet:
Zurück
Oben