保存只读Word文档在VSTO中抛出COMException

时间:2012-10-03 14:20:47

标签: c# ms-word vsto add-in comexception

在我的Word加载项中打开Word文档时,我验证了该文档。验证需要保存文档,因此我调用了save方法:

Microsoft.Office.Tools.Word.Document.Save()

如果文档是只读的(我的用例是从Outlook打开附加文档),则会打开“另存为”对话框。如果我保存文档或点击取消,则会抛出两个案例的COMException,并显示消息“此文件是只读的。(文件名。)”。

通常,为Cancel取消用户取消COMException,如果正确保存文件,我希望不会抛出异常。这是一个错误还是我需要以不同的方式处理文件?

1 个答案:

答案 0 :(得分:1)

你可以做两件事来避免描述的行为(至少对我有用)。首先,你应该使用save as -functionality:document.SaveAs(“/ MyDocuments / example.doc”)。您还可以“强制”应用程序在没有任何对话框的情况下保存文档,您可以通过使用Document.Application.DiplayAlerts = False来实现此目的。然后,您只需在保存后启用警报。

希望这会对你有帮助。