2016-09-28 83 views
0

我想打開/閱讀我的docx文檔。到目前爲止,一切正常,但如果文件名包含「_」,「」,「 - 」,則會出現一些例外情況,但由於以下原因導致出現異常:COMException嘗試打開特定的文字文件時

其他信息:對不起,找到你的文件。它可能被移動,重命名或刪除了嗎?

什麼我到目前爲止做:

string path = "C:/Users/Hans/Rep"; 
      foreach (string file in Directory.EnumerateFiles(path, "*.docx")) 
      { 
       { 
        //Open the doc File 
        var fileInfo = new FileInfo(file); 

        if (!fileInfo.Name.StartsWith("~$")) 
        { 
         var wordApplication = new Microsoft.Office.Interop.Word.Application(); 
         var document = wordApplication.Documents.Open(file); 
         //Set paper Size 
         document.PageSetup.PaperSize = WdPaperSize.wdPaperA4; 

崩潰試圖打開文件時出現。是否需要設置一些特定的參數/參數?!

+0

嘗試通過雙擊它們打開該文件,一旦我得到相同的異常,同時調查我知道文件已損壞。 –

+0

@SilverShadow沒有沒有損壞,我可以打開他們 –

+0

試圖從另一個驅動器打開他們 –

回答

0

我認爲這可能會改變,這取決於您使用的是什麼版本的Word。我必須提供很多參數才能打開/關閉應用程序和文檔。我不得不從你的部分代碼中改變一些東西。但下面的代碼將打開Word文檔。希望這可以幫助。

object missing = System.Reflection.Missing.Value; 
object readOnly = false; 
object isVisible = true; 
object doNotSaveChanges = Word.WdSaveOptions.wdDoNotSaveChanges; 
Object saveChanges = Word.WdSaveOptions.wdPromptToSaveChanges; 

public Form1() 
{ 
    InitializeComponent(); 

    string path = "C:/Test"; 

    Word._Application wordApplication = new Microsoft.Office.Interop.Word.Application(); 
    foreach (string file in Directory.GetFiles(path, "*.docx")) 
    { 
    { 
     //Open the doc File 
     FileInfo fileInfo = new FileInfo(file); 
     Object fileName = fileInfo.FullName; 

     if (!fileInfo.Name.StartsWith("~$")) 
     { 
     Word._Document document = wordApplication.Documents.Open(ref fileName, ref missing, 
             ref readOnly, ref missing, ref missing, ref missing, 
             ref missing, ref missing, ref missing, ref missing, 
             ref missing, ref isVisible, ref missing, ref missing, 
             ref missing, ref missing); 
     //Set paper Size 
     document.PageSetup.PaperSize = WdPaperSize.wdPaperA4; 



     } 
    } 
    } 
    document.Close(ref doNotSaveChanges, ref missing, ref missing); 
    wordApplication.Quit(ref saveChanges, ref missing, ref missing); 
}