清单在C#中的Word文档的属性

问题描述:

我想一些帮助检索word文档的属性。至于获得标题,主题和作者我已经得到了。但我似乎无法得到日期上次保存财产,我不知道如何获得的属性名称的列表。

I would like some help to retrieve the properties of a word document. I have gotten as far as getting the title, subject and author. But I can't seem to get the "Date Last Saved" property and I don't know how to get a list of the property names.

我的代码看起来像这样的:

My code looks like this:

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Interop;
using System.Reflection;
using System.IO;


namespace MetaDataSorter
{
    class Program
    {

    static void Main(string[] args)
    {
        String dirName = @"H:\projekt\test raw files";

        String fileNameString = @"H:\projekt\raw files\vgahm\1 NTFS\Raw Files\Microsoft Word Document\1-300\FILE006.DOC";
        object fileName = (object)fileNameString;

        object missing = System.Reflection.Missing.Value;

        Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();


        Microsoft.Office.Interop.Word.Document aDoc = null;

        if (File.Exists((string)fileName))
        {
            DateTime toDay = DateTime.Now;

            object readOnly = false;
            object isVisible = false;

            wordApp.Visible = false;

            aDoc = wordApp.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 missing, ref missing, ref missing,
                ref missing, ref missing);

            aDoc.Activate();

            //object property = getWordDocumentPropertyValue(aDoc, "Title");

            System.Console.WriteLine("property: " + getWordDocumentPropertyValue(aDoc, "Title"));
            System.Console.WriteLine("property: " + getWordDocumentPropertyValue(aDoc, "Subject"));
            System.Console.WriteLine("property: " + getWordDocumentPropertyValue(aDoc, "Author"));
            //System.Console.WriteLine("property: " + getWordDocumentPropertyValue(aDoc, "Date Last Saved"));

            aDoc.Close();
        }

    }

    private static String getWordDocumentPropertyValue(Microsoft.Office.Interop.Word.Document document, string propertyName)
    {
        object builtInProperties = document.BuiltInDocumentProperties;

        Type builtInPropertiesType = builtInProperties.GetType();

        object property = builtInPropertiesType.InvokeMember("Item", BindingFlags.GetProperty, null, builtInProperties, new object[] { propertyName });

        Type propertyType = property.GetType();
        object propertyValue = propertyType.InvokeMember("Value", BindingFlags.GetProperty, null, property, new object[] { });
        return propertyValue.ToString();
    }

}
}



应该如何我去获取属性值的列表?

How should I go about to get a list of the property values?

您也许可以通过在看看类开始的 BuiltInDocumentProperties 或使用该链接为起点, HTTP ?://support.microsoft.com/default.aspx SCID = KB; EN-US; 303294

You could probably start by having a look at class BuiltInDocumentProperties or use this link as a starting point, http://support.microsoft.com/default.aspx?scid=kb;en-us;303294

记住,有些属性是特定于某些产品办公套件中,有些是常见的。你正在寻找一个当然就是常见的一种。

Remember that some properties are specific to certain products within the office suite and some are common. The one you are looking for is certainly a common one.

关于词,发现这里的列表的 http://msdn.microsoft.com/de-de/library/microsoft.office.interop.word.wdbuiltinproperty%28v=office.11 %29.aspx

About word, find the list here http://msdn.microsoft.com/de-de/library/microsoft.office.interop.word.wdbuiltinproperty%28v=office.11%29.aspx