2016-09-28 117 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); 
} 
相关问题