2017-09-26 86 views
0

下面的代码应该打开我的Windows目录中的.docx文件,但不打开文件只打开Word应用程序。里面没有活动的word文档,甚至没有新的文档。我注意到,在“文件”选项卡下,“保存,另存为,打印,共享,导出和关闭”等选项全部呈灰色并处于非活动状态。C#程序打开Word应用程序但不是特定的Word文档

using Microsoft.Office; 
using Word = Microsoft.Office.Interop.Word; 

class Program 
{ 
    static void openFile() 
    { 
     string myText = @"‪C:\CSharp\WordDocs\MyDoc.docx"; 
     var wordApp = new Word.Application(); 
     wordApp.Visible = true; 
     wordApp.Activate(); 

     Word.Documents book = wordApp.Documents; 
     Word.Document docOpens = book.Open(myText); 
    } 

    static void Main(string[] args) 
    { 
     //Console.WriteLine("Hello World\n"); 
     openFile(); 
    } 
} 
+1

我跑了代码,它打开我的文件就好了。 – Sach

+0

''openFile()'函数的最后一行是否会引发异常?我尝试了一种对'myText'不存在的路径,在这种情况下,它打开了一个空白的Word应用程序,里面没有任何文档,但它在所提到的行中引发了异常。 – Sach

+0

文件路径可能是错误的。 – JuanR

回答

1

运行你的代码,但是不存在的路径确实会打开没有文档的Word应用程序。但它确实抛出一个内容非常丰富的例外如下:

System.Runtime.InteropServices.COMException:“对不起,我们找不到 您的文件。它是移动,重命名还是删除? (C:\用户\ nonexistantuser ... \ Test.docx)”

你没有在你的问题提这一点,但你必须得到一个异常。

所以我的猜测是你的路径是不正确的。

如果路径正确,即文件存在,另一种可能的情况是没有适当的读取权限。在那种情况再次将打开一个空Word应用程序,但同样应该抛出一个异常尽管是不同的一个:

System.Runtime.InteropServices.COMException:“Word无法打开文档:用户没有访问特权 (C:\用户\ NS799 \桌面\ Test.docx)”

所以,请检查是否存在的路径,如果是的话,如果有适当的权限。