Supportnet / Forum / Skripte(PHP,ASP,Perl...)
VBS prüfen ob die Datei bereits geöffnet ist
Frage
Hallo Zusammen,
ich habe folgendes Problem ich möchte den Inhalt eines Ordners mittels eines VBS löschen, dass Problem dabei ist das einige Dateien in diesem Ordner geöffnet sind und dadurch nicht gelöscht werden können bzw. sich Wscript mit einem Scriptfehler, Zugriff verweigert, meldet und das weitere ausführen abbricht.
Wie kann ich überprüfen ob die Datei geöffnet ist?
hier noch der CODE:
[code]set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder("<ORDNER>")
Set fc = f.Files
For Each f1 in fc
f1.delete(true)
next[/code]
Bin dankbar für alle Antworten.
Gruß SOAD003
Antwort 1 von ChatAlligator
Ich kenne mich nur mit VB und VBA aus.
Dort würde ich mit ON ERROR GOTO ... die Fehlermeldung abfangen die mir der OPEN-Befehl (direkt gefolgt von dem CLOSE-Befehl) ausgibt - so kann ich analysieren, warum sich die Datei nicht öffnen lässt.
Würde ich das gar nicht wissen wollen sondern nur Fehler überspringen, dann arbeite ich mit ON ERROR RESUME NEXT
Dort würde ich mit ON ERROR GOTO ... die Fehlermeldung abfangen die mir der OPEN-Befehl (direkt gefolgt von dem CLOSE-Befehl) ausgibt - so kann ich analysieren, warum sich die Datei nicht öffnen lässt.
Würde ich das gar nicht wissen wollen sondern nur Fehler überspringen, dann arbeite ich mit ON ERROR RESUME NEXT
Antwort 2 von fgh
ja so ähnlich wie chatalligator sagt.
nur:
-einschalten der fehlerbehandlung bei vbs nur mit:
d.h. die fehlerbehandlung muss in der darauffolgenden zeile beginnen
z.b. mit
bzw
-ausschalten mit
-ausserdem kommt der fehler nicht bei "open"
sondern bei "delete" oder "deletefile"
ps: fehlercode 70 = "Erlaubnis verweigert"
nur:
-einschalten der fehlerbehandlung bei vbs nur mit:
"ON ERROR RESUME NEXT"d.h. die fehlerbehandlung muss in der darauffolgenden zeile beginnen
z.b. mit
"if err then blabla"bzw
"if err<>70 then msgbox "Unerwarteter Fehler: "&err"-ausschalten mit
"ON ERROR GOTO 0"-ausserdem kommt der fehler nicht bei "open"
sondern bei "delete" oder "deletefile"
ps: fehlercode 70 = "Erlaubnis verweigert"
Antwort 3 von fgh
berichtigung:
also wenn ein fehler auftrat aber das nicht code 70 ist dann ..
if err and err<>70 ..also wenn ein fehler auftrat aber das nicht code 70 ist dann ..
Antwort 4 von SOAD003
Vielen Dank,
ihr habt mir sehr geholfen. Hab das ganze jetzt eingebaut und funktioniert super. Habe so auch noch ein paar andere Ausnahmen handeln können. Eigentlich ganz einfach.
DANKE DANKE.
Grüße
SOAD003
ihr habt mir sehr geholfen. Hab das ganze jetzt eingebaut und funktioniert super. Habe so auch noch ein paar andere Ausnahmen handeln können. Eigentlich ganz einfach.
DANKE DANKE.
Grüße
SOAD003

