2017-09-26 4 views
0

以下のコードは、Windowsディレクトリ内の.docxファイルを開くはずですが、ファイルを開く代わりにWordアプリケーションのみを開きます。内部にはアクティブな単語の文書はなく、新しい文書はありません。私は、 "保存、印刷、共有、エクスポート、および閉じる"のようなファイルタブのオプションはすべて灰色で表示され、非アクティブであることに気付きました。C#program open 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:\ Users \ユーザーnonexistantuser ... \ Test.docx「)

あなたはあなたの質問でこれを言及しなかったが、あなたは例外を取得する必要があります。

あなたのパスは間違っています。

パスが正しい場合、つまりファイルが存在する場合、考えられる別のシナリオでは適切な読み取り権限がありません。その場合は、再度、空のWordのアプリケーションを開くだろうが、それはあまりにも異なるものではあるが例外をスローする必要があります

System.Runtime.InteropServices.COMException:「Wordがドキュメントを開くことができません:ユーザーがアクセス権を持っていません。権限 (C:NS799 \デスクトップ\ Test.docx \ \ユーザー)あなたが適切な権限を持っている場合、パスが存在する場合と、それがない場合は、」

だから確認してください。

関連する問題