请问:如何判断文件是否被打开,不过不判断的话,会出现实时错误'70' 拒绝的访问
代码如下:
1 Dim fs As Object
2 Set fs = CreateObject("Scripting.FileSystemObject")
3 If fs.FileExists(fileName) Then
4 fs.DeleteFile fileName, True
5 End If
6 Set fs = Nothing如果此时我把文件打开,执行到第四行 fs.DeleteFile fileName, True 就会报实时错误
如何在这之前判断,此文件是否已经被打开呢或者如何 在执行到 fs.DeleteFile fileName, True 这一句时捕捉错误呢
像c语言一样的判断返回值,或者像java一样的try...catch(), 然后加上自己的提示信息。
用on error goto 好像也不行,请问高手这个怎么解决??
代码如下:
1 Dim fs As Object
2 Set fs = CreateObject("Scripting.FileSystemObject")
3 If fs.FileExists(fileName) Then
4 fs.DeleteFile fileName, True
5 End If
6 Set fs = Nothing如果此时我把文件打开,执行到第四行 fs.DeleteFile fileName, True 就会报实时错误
如何在这之前判断,此文件是否已经被打开呢或者如何 在执行到 fs.DeleteFile fileName, True 这一句时捕捉错误呢
像c语言一样的判断返回值,或者像java一样的try...catch(), 然后加上自己的提示信息。
用on error goto 好像也不行,请问高手这个怎么解决??
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Const GENERIC_READ = &H80000000
Private Const GENERIC_WRITE = &H40000000
Private Const OPEN_EXISTING = 3
Private Const FILE_ATTRIBUTE_NORMAL = &H80
Private Const INVALID_HANDLE_VALUE = -1Private Function IsFileRun(ByVal pFile As String) As Boolean
Dim Ret As Long
Ret = CreateFile(pFile, GENERIC_READ Or GENERIC_WRITE, 0&, vbNullString, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0&)
IsFileRun = (Ret = INVALID_HANDLE_VALUE)
CloseHandle Ret
End Function
-----------------
看程序是否运行。EXE、DLL、COM都行。TXT不行。