2017-09-26 116 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)」

所以,請檢查是否存在的路徑,如果是的話,如果有適當的權限。