如何在C#中打开文件并更改其属性?

如何在C#中打开文件并更改其属性?,c#,ms-word,C#,Ms Word,我需要打开Microsoft Word 2003文件并更改其文件属性。例如,在“摘要”选项卡中更改主题 我可以想出两种方法: 使用Microsoft Office API。你 必须在您的文档中引用它们 项目,您将需要 将文件转换为Word 2003 XML格式,并在中更改该值 XML文档。这是MSDN 关于该文件的文件 特性: 如果可以的话,我会选择第二个选项,因为这样您就不必依赖系统上安装的Word。Microsoft提供了一个非常有用的称为DSOFile的小程序集。通过在项目中对其进

我需要打开Microsoft Word 2003文件并更改其文件属性。例如,在“摘要”选项卡中更改主题

我可以想出两种方法:

  • 使用Microsoft Office API。你 必须在您的文档中引用它们 项目,您将需要
  • 将文件转换为Word 2003 XML格式,并在中更改该值 XML文档。这是MSDN 关于该文件的文件 特性:

如果可以的话,我会选择第二个选项,因为这样您就不必依赖系统上安装的Word。

Microsoft提供了一个非常有用的称为DSOFile的小程序集。通过在项目中对其进行引用,可以修改Office文档属性。它不一定允许您打开实际的Office文件属性对话框,但您当然可以模拟它

据微软称:

Dsofile.dll文件允许您编辑 执行此操作时的Office文档属性 没有安装Office

有关更多详细信息和下载链接,请访问

下面是我多年前使用的一些(非常旧的)VB代码的片段。很抱歉,我还没有转换为C#,请注意它是类的一部分,因此存在对实例变量的引用。不过,它应该很容易理解,并能满足您自己的需求:

Private Sub ProcessOfficeDocument(ByVal fileName As String)
    Dim docDSO As New DSOFile.OleDocumentPropertiesClass
    Dim docTitle, docModified, docAuthor, docKeywords As String
    Try
        docDSO.Open(fileName, True)
        Dim docSummary As DSOFile.SummaryProperties = docDSO.SummaryProperties
        docTitle = docSummary.Title
        docAuthor = docSummary.Author
        docKeywords = docSummary.Keywords
        docModified = CStr(docSummary.DateLastSaved)

        If (Not String.IsNullOrEmpty(docTitle)) Then
            _Title = docTitle
        End If

        If (Not String.IsNullOrEmpty(docAuthor)) Then
            _Author = docAuthor
        End If

        If (Not String.IsNullOrEmpty(docModified)) Then
            _DateModified = DateTime.Parse(docModified)
        End If

    Catch ex As Exception
        'Do whatever you need to do here...'
    Finally
        If (Not docDSO Is Nothing) Then
            docDSO.Close()
        End If
    End Try
End Sub

如果可以的话,我愿意+5这个。。回答得很好。