判断如果没打开就删除该文本文件!
要用到FileSystemObject 对象的 FileExists 和 deletefile方法

解决方案 »

  1.   

    你可以通过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
      

  2.   

    上面的有点问题,应该这样
    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
      

  3.   

    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
    文件,它还是正常。这是怎么回事!!!???
      

  4.   

    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   ' 将执行返回到发生错误的语句。