leon460 发表于 2011-3-23 08:46:08

怎样判断文件被打开

机器B有时候会打开机器A共享的文件1.txt,请问如何在机器A上判断1.txt文件被机器B打开?

love5173 发表于 2011-3-23 10:11:28

我有个笨方法,当B打开1.txt的时候在文件末尾写上“文件正被打开”,A来读有没有这句话就可以了
这个是在B用程序打开的时候的方法,如果是B是人工打开的话,我就不会了

boyhong 发表于 2011-3-23 13:32:04

我用了一个很懒的方法,       
$sss = FileOpen(@HomeDrive & "\test.log", 0)
If $sss = -1 Then....

原理是:若在打开状态,这个读取是失败的。。。

boyhong 发表于 2011-3-23 13:32:30

我想UNC下,这个也是相通的吧。。。

leon460 发表于 2011-3-24 13:52:31

回复 3# boyhong

经测试,fileopen函数只要文件存在,就会返回1,好象不管这个文件是否被打开

wsfda 发表于 2011-3-25 09:07:15

没有想出好的办法,惭愧

wsfda 发表于 2011-3-25 09:07:19

没有想出好的办法,惭愧

ceoguang 发表于 2011-3-25 13:02:34

如果是共享,可以通过管道来获取IPC连接,然后判断路径是否为1.txt就可以了

leon460 发表于 2011-3-25 13:28:19

回复 8# ceoguang

谢谢提供思路

蜘蛛抱蛋 发表于 2011-3-25 14:04:03

参考帮助文档的FileRecycle函数 仔细看。。。

vic0935 发表于 2011-3-26 11:07:38

什么机器啊

vic0935 发表于 2011-3-26 11:17:04

什么机器啊

vic0935 发表于 2011-3-26 11:17:16

如果是共享,可以通过管道来获取IPC连接,然后判断路径是否为1.txt就可以了

a62105400 发表于 2011-3-27 00:10:48

查看正在共享的会话数   和正在打开的文件路径

leon460 发表于 2011-3-30 12:47:54

回复 14# a62105400

能告知用哪个具体函数么?谢谢
页: [1] 2
查看完整版本: 怎样判断文件被打开