Я хотел бы получить некоторую помощь для получения свойств текстового документа. Я дошел до того, что получил название, тему и автора. Но я не могу получить свойство «Дата последнего сохранения» и не знаю, как получить список имен свойств.
Мой код выглядит так:
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();
}
}
}
Как мне получить список значений свойств?