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

问题描述:

有没有什么办法检查一个特定的word文档是否打开?当我在打开应用程序之前打开应用程序时,当我告诉我的应用程序在文档中写入某些内容时,首先尝试打开文档,以及那些应用程序被卡住的位置。如果文件已经存在,在尝试打开之前有一种方法可以打开打开?在这一刻我的代码如下所示:检查一个特定的word文档是否使用c#打开

 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; 
+0

可能的复制[有没有一种方法来检查文件是否在使用?(HTTPS:/ /stackoverflow.com/questions/876473/is-there-a-way-to-check-if-a-file-is-in-use) – Filburt

+0

@Filburt也试图使用该方法来检查它是否打开,但实际上它告诉我每次打开文件时都会打开文件,所以我不知道为什么这种方法不适用于我...... –

+0

具体是什么意思_“那是我的应用程序被卡住“_ - 你会得到一个异常,请问应用程序 “挂断”? – PaulF

只是把你的代码的

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

在这种情况下使用异常处理是最后的手段 - 至少它应该区分文件访问异常/ IO和其他异常。 – Filburt

+0

我没有试过这个,没有任何反应 –

+0

看到我对这个问题的评论 - 在这一点上Word不打开文件,但显示一个对话框(不幸的是应用程序被隐藏) - 所以没有发生异常。 – PaulF