日期:2014-05-19  浏览次数:20881 次

如何获取某进程打开的所有文件的完整路径
C/S客户端,运行时会在指定目录生成某些文件(xls或者doc文件),并用Process.Start方法打开。但在生成文件之前要判断该文件是否被打开了,以免删除并生成新文件的时候报“某某文件正由另一进程使用,因此该进程无法访问该文件。”

对于Excel或者Word,多个窗口是共用一个进程的。我想知道如何获得某个进程打开的所有文件的路径,或者知道某个文件是否被其它进程打开了,并返回该进程相应窗口的句柄,方便SetForegroundWindow()

麻烦大家帮我想想办法,分不够另开帖。

------解决方案--------------------
就利用报“某某文件正由另一进程使用,因此该进程无法访问该文件。”来检查该文件是否被打开了!
------解决方案--------------------
unlock?
不晓得帮顶
------解决方案--------------------

------解决方案--------------------
关注
------解决方案--------------------
Applicationruntime.virtualpath
------解决方案--------------------
用active 接口
调用WordApp 就知道了
------解决方案--------------------
试试LS
------解决方案--------------------
C/S客户端,运行时会在指定目录生成某些文件(xls或者doc文件),并用Process.Start方法打开。但在生成文件之前要判断该文件是否被打开了,以免删除并生成新文件的时候报“某某文件正由另一进程使用,因此该进程无法访问该文件。”

由以上描述我理解为,这些文件是你的程序调用Process.Start来打开的。如果这样,何不在打开文件的时候做一个链来储存其文件名,即注册模式。在关闭的时候来取消注册(好像有个exit事件)。然后生成新文件的时候去遍历这个链。来判断是否已被打开。