在vb中如何判断文件是否正在使用,应该有相应的API吧,我在google上暴走了一个上午都没结果,希望各位大虾帮帮小弟这个忙,我在这先谢谢了!

解决方案 »

  1.   

    如果是判断exe文件是否正在运行是有办法的:
    Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As String, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
    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有一点需要注意,如果pFile这个文件不存在,那么IsFileRun也会返回True,所以这个函数最好跟Dir一起用。
      

  2.   

    happy_sea(开心海) 谢谢了,我主要是要判断TXT文件。不知这个要求能不能实现