我有一个文件是多个程序在使用,但在同一时间只能有一个程序使用,如何判断文件是否在使用?
急等呀!
急等呀!
解决方案 »
- 请教程序源代码,vb读取出PDF里面的文字内容
- Public dbObj As ADODB.Connection提示ADODB没有定义,怎么回事啊?
- 我用winsock发送数据到远程数据库,怎么返回一些乱码呢?
- 请教各位老师关于彩票数组所有组合的算法?
- 请教xyy 二维坐标系
- 技术性难题:如何能使应用程序配合光盘使用?
- 如何让server不登陆,客户端也能调用server上的mts组件
- 我是VB初学者,大家能不能给个东西做一做呀!(listbox方面的更好我才学到这!)
- 谁提供打开文件夹里的所有文件(包阔子文件里)并替换的软件?
- 关于使用ActiveXExe做数据库中间件的问题
- 如何判断一个文件夹中是否有文件存在,并获取第一个文件的文件名???
- 如何实现Picture的打印
Public Function IsFileOpen(sFile As Variant) As Boolean
Dim fFile As Integer
Dim msg As String
fFile = FreeFile()
On Error GoTo ErrOpen
Open sFile For Binary Lock Read Write As fFile
Close fFile
Exit Function
ErrOpen: If Err.Number <> 70 Then
msg = "Error # " & Err.Number & " was generated by " _
& Err.Source & Chr(13) & Err.Description
MsgBox msg, , "Error", Err.HelpFile, Err.HelpContext
Else
IsFileOpen = True
End If
End Function
◆若判断EXCEL或某个XLS文件是否已经打开(避免不可预知的错误发生):
LOCAL lOldSetOpt,mChanNum
lOldSetOpt = DDESetOption("SAFETY")
= DDESetOption("SAFETY",.F.)
mChanNum = DDEInitiate('Excel','SYSTEM') &&EXCEL是否已经打开
**mChanNum = DDEInitiate('Excel','&lcFileName') &&lcFileName某XLS文件名,如:D:\123.XLS
IF mChanNum <> -1
= messagebox('程序 EXCEL 已经打开,请先将其关闭!',64,'系统提示!')
** = messagebox('文件 '+lcFileName+' 已经打开,请先将其关闭!',64,'系统提示!')
= DDETerminate(mChanNum)
= DDESetOption("SAFETY",lOldSetOpt)
RETURN
ENDIF
写了个判断文件是否被锁定的函数 --- 有用!http://blog.csdn.net/tanaya/archive/2004/09/03/93571.aspx
--------------------------------
'引用Microsoft Scripting Runtime
Private Sub Command1_Click()
Dim filePath As String
filePath = "D:\myWork\Test\新建 文本文档.txt"
If IsFileOpen(filePath) Then MsgBox "文件已经打开!"
End SubPublic Function IsFileOpen(sFile As Variant) As Boolean
IsFileOpen = False
Dim openFile As New FileSystemObject, ExName As String, targetFileName As String
If Not openFile.FileExists(sFile) Then
MsgBox "文件不存在!"
Exit Function
End If
ExName = openFile.GetExtensionName(sFile)
targetFileName = "c:\temp." & ExName
On Error GoTo ErrOpen
openFile.MoveFile sFile, targetFileName
openFile.MoveFile targetFileName, sFile
Debug.Print targetFileName
Exit Function
ErrOpen:
IsFileOpen = True
End Function