你可以通过filecopy函数来判断文件是否打开,filecopy函数如果文件不存在或文件打开都会出错,然后再用FileExist来判断文件是否存在如下: Private Sub Form_Load() Dim fs As FileSystemObject On Error GoTo Err Set fs = New FileSystemObject
FileCopy "C:\readme.txt", "C:\readme.txt" Exit Sub
Err: If fs.FileExists("C:\readme.txt") Then fs.DeleteFile "C:\readme.txt" End If
End Sub
上面的有点问题,应该这样 FileCopy "C:\readme.txt", "C:\readme.txt" If fs.FileExists("C:\readme.txt") Then fs.DeleteFile "C:\readme.txt" End If
Exit Sub
Err: end sub
Private Sub Command1_Click() Dim fs, a On Error GoTo ErrSet fs = CreateObject("Scripting.FileSystemObject")FileCopy "C:\testfile.txt", "C:\testfile.txt"If fs.FileExists("C:\testfile.txt") Then fs.DeleteFile "C:\testfile.txt" End IfSet a = fs.CreateTextFile("c:\testfile.txt", True) a.WriteLine (strContent) a.CloseExit Sub Err: MsgBox "C:\testfile.txt 文件已经打开,请关闭后重试!!!" Exit Sub End Sub上面是我写的 如果我打开testfile.txt文件,它会捕捉到错误,但是我切换出来 关闭testfile.txt文件再点按钮,它还是捕捉到错误 如果我不打开文件,它运行正常,但是我切换出来打开testfile.txt 文件,它还是正常。这是怎么回事!!!???
if dir(myfile)="" then exit sub FileNumber = FreeFile ' 取得未使用的文件号。 On Error GoTo ErrorHandler ' 打开错误处理程序。 Open MyFile For Output As #FileNumber ' 打开输出文件。 Kill "TESTFILE" ' 试图删除已打开的文件。 Exit Sub ' 退出程序,以避免进入错误处理程序。ErrorHandler: ' 错误处理程序。 Select Case Err.Number ' 检查错误代号。 Case 55 ' 发生“文件已打开”的错误。 Close #FileNumber ' 关闭已打开的文件。 Case Else ' 处理其他错误状态 . . . End Select Resume ' 将执行返回到发生错误的语句。
Private Sub Form_Load()
Dim fs As FileSystemObject
On Error GoTo Err
Set fs = New FileSystemObject
FileCopy "C:\readme.txt", "C:\readme.txt"
Exit Sub
Err: If fs.FileExists("C:\readme.txt") Then
fs.DeleteFile "C:\readme.txt"
End If
End Sub
FileCopy "C:\readme.txt", "C:\readme.txt"
If fs.FileExists("C:\readme.txt") Then
fs.DeleteFile "C:\readme.txt"
End If
Exit Sub
Err:
end sub
Dim fs, a
On Error GoTo ErrSet fs = CreateObject("Scripting.FileSystemObject")FileCopy "C:\testfile.txt", "C:\testfile.txt"If fs.FileExists("C:\testfile.txt") Then
fs.DeleteFile "C:\testfile.txt"
End IfSet a = fs.CreateTextFile("c:\testfile.txt", True)
a.WriteLine (strContent)
a.CloseExit Sub
Err:
MsgBox "C:\testfile.txt 文件已经打开,请关闭后重试!!!" Exit Sub
End Sub上面是我写的
如果我打开testfile.txt文件,它会捕捉到错误,但是我切换出来
关闭testfile.txt文件再点按钮,它还是捕捉到错误
如果我不打开文件,它运行正常,但是我切换出来打开testfile.txt
文件,它还是正常。这是怎么回事!!!???
FileNumber = FreeFile ' 取得未使用的文件号。
On Error GoTo ErrorHandler ' 打开错误处理程序。
Open MyFile For Output As #FileNumber ' 打开输出文件。
Kill "TESTFILE" ' 试图删除已打开的文件。
Exit Sub ' 退出程序,以避免进入错误处理程序。ErrorHandler: ' 错误处理程序。
Select Case Err.Number ' 检查错误代号。
Case 55 ' 发生“文件已打开”的错误。
Close #FileNumber ' 关闭已打开的文件。
Case Else
' 处理其他错误状态 . . .
End Select
Resume ' 将执行返回到发生错误的语句。