当我想编写一个程序,这将在一大堆字97个文件(.DOC)的读取,并将其保存为.DOCX文件。我仅限于.Net 2.0。C#字的Interop AccessViolationException节省
在这个阶段,我只想把它与我的存根代码的工作 - 然后我会写的GUI和逻辑在多个位置打开多个文件,等...
这里是我到目前为止:
using MSWord = Microsoft.Office.Interop.Word;
using MSPPoint = Microsoft.Office.Interop.PowerPoint;
然后
OpenFileDialog ofd = new OpenFileDialog()
{
CheckFileExists = true,
};
if (ofd.ShowDialog() != DialogResult.OK)
return;
MSWord.Application app = new MSWord.Application();
MSWord.Document doc = new MSWord.Document();
doc = app.Documents.Open(ofd.FileName);
try
{
doc.SaveAs2(ofd.FileName + ".docx", MSWord.WdSaveFormat.wdFormatDocument);
}
catch (Exception ex)
{
MessageBox.Show("Could not save because:\r\n" + ex.Message,
ex.GetType().ToString());
}
doc.Close();
app.Quit();
return;
至于我可以告诉大家,在Word文档被打开。 但是,SaveAs2()
命令似乎会抛出AccessViolationException
,并且.docx未保存。
可有人请让我知道什么是错的,上面的代码,为什么它不节能,以及如何解决它?
谢谢
如何发布确切的异常(与细节)? – steinar 2011-04-03 23:47:26