Вывод списка свойств текстового документа в C # - PullRequest
2 голосов
/ 08 ноября 2011

Я хотел бы получить некоторую помощь для получения свойств текстового документа. Я дошел до того, что получил название, тему и автора. Но я не могу получить свойство «Дата последнего сохранения» и не знаю, как получить список имен свойств.

Мой код выглядит так:

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();
    }

}
}

Как мне получить список значений свойств?

Ответы [ 2 ]

1 голос
/ 08 ноября 2011

Возможно, вы могли бы начать с просмотра класса BuiltInDocumentProperties или использовать эту ссылку в качестве отправной точки, http://support.microsoft.com/default.aspx?scid=kb;en-us;303294

Помните, что некоторые свойства относятся к определенным продуктам офисного пакета, а некоторые - к обычным. Тот, который вы ищете, безусловно, является распространенным.

О слове, список можно найти здесь http://msdn.microsoft.com/de-de/library/microsoft.office.interop.word.wdbuiltinproperty%28v=office.11%29.aspx

0 голосов
/ 15 мая 2016

Вставьте этот код в модуле VBA в документ Word, и вы получите список свойств.

Sub ListeProprietes()
   Dim proDoc As DocumentProperty

   For Each proDoc In ActiveDocument.BuiltInDocumentProperties

        MsgBox (proDoc.Name)

   Next

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...