Ist eine bestimmte Datei offen |
|
Im Windows Script Hosting gibt es keine Funktion wie in VB um zu prüfen ob eine bestimmte Datei schon geöffnet ist. Über die Funktion OpenTextFile kann dies ermöglicht werden. Aber nicht alle Programme sperren die Datei wenn sie durch die Anwendung geöffet wurde (z.B. Notepad).
OpenTextFileOption Explicit
Dim f Dim sFile ' Hier den Dateinamen eintragen. ' ------------------------------ sFile = "c:\tmp\test.txt" ' ------------------------------ Function IsFileOpen(sFileName) Dim oFSO, f Dim iErrNum Const ForAppending = 8 Const ForReading = 1 Set oFSO = CreateObject("Scripting.FileSystemObject") On Error Resume Next ' Fehlerprüfung abschalten. ' Versuch die Datei gesperrt zu öffnen . Set f = oFSO.OpenTextFile(sFileName, ForAppending, False) iErrNum = Err.Number ' auftretende Fehler-Nummer sichern. f.Close ' Datei schließen. On Error Goto 0 ' Errprüfung wieder einschalten. ' Auftetende Fehlernummer herausbekommen. Select Case iErrNum Case 0 'Kein Fehler ist aufgetreten. 'Datei ist bis jetzt NICHT durch eine andere Anwendung geöffnet. IsFileOpen = False Case 70 'Feher-Nummer (Error number) für "Zugriff verweigert" 'Datei ist schon durch eine andere Anwendung geöffnet. IsFileOpen = True Case Else ' Sonstiger auftretender Fehler. Err.Raise iErrNum End SelectEnd Function ' Aufruf der Funktion f = IsFileOpen(sFile) MsgBox f |