以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]怎样判断一个文本是否在占用?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=146256)

--  作者:54292550
--  发布时间:2020/2/20 10:42:00
--  [求助]怎样判断一个文本是否在占用?
我在进行文本写入得时候怎么判断有其它进程在写入同一个文本?等不占用得时候我再操作。
--  作者:有点蓝
--  发布时间:2020/2/20 11:48:00
--  
试试

Dim fileName As String = "c:\\abc.txt"

Dim inUse As Boolean = True
Dim fs As system.io.FileStream = Nothing
Try
    fs = New system.io.FileStream(fileName, system.io.FileMode.Open, system.io.FileAccess.Read, system.io.FileShare.None)
    inUse = False
Catch ex As Exception
    
Finally
    If (fs IsNot Nothing) Then
        fs.Close()
    End If
End Try
msgbox(inUse) 

--  作者:54292550
--  发布时间:2020/2/20 13:08:00
--  
窗口计时器里面写了这个代码:

Dim fileName As String = "d:\\data.txt"
Dim inUse As Boolean = True
Dim fs As system.io.FileStream = Nothing
Try
    fs = New system.io.FileStream(fileName, system.io.FileMode.Open, system.io.FileAccess.Read, system.io.FileShare.None)
    inUse = False
Catch ex As Exception
   
Finally
    If (fs IsNot Nothing) Then
        fs.Close()
    End If
End Try
If inUse = True Then
e.Form.Controls("Label1").text = "空闲"
Else
e.Form.Controls("Label1").text = "占用"
End If




窗口上做了个按钮,写入文本得代码:
FileSys.WriteAllText("d:\\data.txt", "I Like Foxtable", True)




首次打开窗口得时候显示“空闲”,写入文本一次之后就一直是“占用”状态。怎么回事?

--  作者:有点蓝
--  发布时间:2020/2/20 13:44:00
--  
If inUse = True Then
e.Form.Controls("Label1").text = "占用"
Else
e.Form.Controls("Label1").text = "空闲"
End If