如何判断是否有其它进程写某文件(急!!!)
有一个文本文件A.txt,它内部的数据每一分钟被一个进程更新一次(也可以几分钟)
我想要的效果是:
该文件进行判断,如果某进程不占用该文件时,我就将其读写,占用时则等待.
问题点数:30、回复次数:4Top
1 楼unsigned(僵哥(发站内消息,请附上链接或问题说明,否则不予回复))回复于 2006-03-28 22:13:27 得分 15
Public Function IsFileInUse(ByVal FileName As String) As Boolean
Dim FileHandle As Long
On Error GoTo ErrHandle
IsFileInUse = True
If Not FileExists(FileName) Then
IsFileInUse = True
Exit Function
End If
FileHandle = CreateFile(FileName, _
GENERIC_READ Or _
GENERIC_WRITE, _
0&, _
ByVal 0&, _
OPEN_EXISTING, _
FILE_ATTRIBUTE_ARCHIVE Or _
FILE_ATTRIBUTE_HIDDEN Or _
FILE_ATTRIBUTE_NORMAL Or _
FILE_ATTRIBUTE_READONLY Or _
FILE_ATTRIBUTE_READONLY Or _
FILE_ATTRIBUTE_SYSTEM, _
0& _
)
If FileHandle = -1 Then Exit Function
IsFileInUse = False
Call CloseHandle(FileHandle)
Exit Function
ErrHandle:
Err.Raise Err.Number, "IsFileInUse", Err.Description
End FunctionTop
2 楼unsigned(僵哥(发站内消息,请附上链接或问题说明,否则不予回复))回复于 2006-03-28 22:14:02 得分 0
我晕,还以为是VB版.不过代码差不了多少,自己修改吧^_^Top
3 楼cuteant(我这张旧床票还能否登上你的破床|涛声是否依旧)回复于 2006-03-28 22:14:19 得分 5
你写之前把它Rename一下,如果成功的话说明没有进程占用,等你写完以后再把Name改回去,这样也可以防止其他进程访问。Top
4 楼simonhehe(流氓会武术,谁也挡不住)回复于 2006-04-30 17:23:07 得分 10
楼上正解Top




