Foxtable(狐表)用户栏目专家坐堂 → [求助]怎样判断一个文本是否在占用?


  共有3892人关注过本帖树形打印复制链接

主题:[求助]怎样判断一个文本是否在占用?

帅哥哟,离线,有人找我吗?
54292550
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:287 积分:4225 威望:0 精华:0 注册:2011/8/19 10:07:00
[求助]怎样判断一个文本是否在占用?  发帖心情 Post By:2020/2/20 10:42:00 [只看该作者]

我在进行文本写入得时候怎么判断有其它进程在写入同一个文本?等不占用得时候我再操作。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:287 积分:4225 威望:0 精华:0 注册:2011/8/19 10:07:00
  发帖心情 Post By: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)




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

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/20 13:44:00 [只看该作者]

If inUse = True Then
e.Form.Controls("Label1").text = "占用"
Else
e.Form.Controls("Label1").text = "空闲"
End If

 回到顶部