C# 检查是否使用c打开了特定的word文档#

C# 检查是否使用c打开了特定的word文档#,c#,ms-word,C#,Ms Word,有没有办法检查特定word文档是否打开?当我在打开应用程序之前自己打开文档时,当我告诉我的应用程序在文档中写入内容时,首先尝试打开文档,这就是我的应用程序卡住的地方。在我尝试打开文件之前,是否有方法检查文件是否已打开?此时,我的代码如下所示: object filename = s; // s is a string path which I get from database Microsoft.Office.Interop.Word.Applica

有没有办法检查特定word文档是否打开?当我在打开应用程序之前自己打开文档时,当我告诉我的应用程序在文档中写入内容时,首先尝试打开文档,这就是我的应用程序卡住的地方。在我尝试打开文件之前,是否有方法检查文件是否已打开?此时,我的代码如下所示:

     object filename = s; // s is a string path which I get from database 
                Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();
                Microsoft.Office.Interop.Word.Document doc1 = app.Documents.Open(s);
                object missing = System.Reflection.Missing.Value;
                app.Visible = true;

只需将代码放入

try
{
   //your code here
}
catch (Exception e)
{
   //your behavior when the file is opened 
}

@Filburt的可能副本也尝试使用该方法检查它是否打开,但实际上它告诉我,即使文件未打开,每次文件都打开,所以我不知道为什么该方法对我不起作用…你说的“我的应用程序卡住了”到底是什么意思-你是否遇到异常,应用程序是否“挂断”?我没有任何例外,只是我不能做任何事情,我必须停止应用程序的可视化研究。我想发生的是Word正在尝试打开文档并显示“正在使用的文件”对话框,询问您是否希望以只读方式打开,等等,但此时应用程序不可见。在打开文档之前,请尝试将“app.Visible=true;”移动到该行。我知道这并不能回答这个问题(因此是一个评论)但是你会看到发生了什么。在这种情况下,使用异常处理是最后的手段-至少它应该区分文件访问异常/IO和其他异常。请参阅我对问题的评论-此时Word并没有打开文件,而是显示一个对话框(不幸的是,应用程序被隐藏)-因此没有例外情况发生。