如何判断一个文件是否被别的程序打开

wzxypq 2003-09-15 01:56:22
比如一个文本文件,
我做过实验,在一个程序中写入文本文件,在另一程序中读取不会出错
程序1
Dim myRecord As Record
Open filePathName For Random As #1 Len = Len(myRecord)



For RecordNumber = 1 To 5
myRecord.ID = RecordNumber
myRecord.Name = "My Name" & RecordNumber
Put #1, RecordNumber, myRecord
MsgBox "ok" '
Next RecordNumber

Close #1

程序2

Dim i As Integer
Dim recordCounts As Integer
Dim tempRecord As Record
On Error GoTo line1

Open filePathName For Random As #1 Len = Len(tempRecord)
recordCounts = LOF(1) / Len(tempRecord)


For i = 0 To 5

Get #1, , tempRecord
Next
Close #1
Exit Sub
line1:
DoEvents
Resume
...全文
164 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzxypq 2003-09-16
  • 打赏
  • 举报
回复
请问你是如何实验的,我用记事本或ultraEdit打开文本文件后,函数返回false;在程序中open 打开文本文件,函数返回true,

我想要的效果是不管用什么打开文本文件后,函数都返回true
guoyx 2003-09-16
  • 打赏
  • 举报
回复
iFileNum = FreeFile()这个函数是什么呀,看看msdn在贴咯,是返回空文件号!!!!!
stonegoldaustin 2003-09-16
  • 打赏
  • 举报
回复
To:wzxypq(wzxypq)

我已经实验过,当打开文本文件后,函数返回True.

另:此函数是检查文件是否被打开,并不是检查文件是否存在.
stonegoldaustin 2003-09-16
  • 打赏
  • 举报
回复
我是用ultreedit打开的.你放心,我发出的回复都是经过本机的调试的.
至于你说的情况,我就不太清楚了,但我这里是通过了的.另外附上我机器的配置
给你参考一下:
windows 2000 server + sp4
visual basic 6 + sp3
希望你能尽快解决问题,有了进展请通知我.

祝好运.
aalei 2003-09-15
  • 打赏
  • 举报
回复
同意楼上的写法!!!!!!
stonegoldaustin 2003-09-15
  • 打赏
  • 举报
回复
Function FileIsOpen(sFilePathName As String)
Dim iFileNum As Integer, iErrNum As Integer
On Error Resume Next
iFileNum = FreeFile()
Open sFilePathName For Input Lock Read As #iFileNum

Close iFileNum
iErrNum = Err.Number
Select Case iErrNum
Case 0
FileIsOpen = False
Case 70
FileIsOpen = True
Case Else
FileIsOpen = True
End Select
End Function

Private Sub Form_Load()
MsgBox FileIsOpen("c:\ccu.mdb")
End Sub
gzqg 2003-09-15
  • 打赏
  • 举报
回复
用API,具体函数和用法可以查一下以前的贴子.
wzxypq 2003-09-15
  • 打赏
  • 举报
回复
?

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧