答案 0 :(得分:0)
来自How to get Document Content Created Date using c#
的引用无需使用该文件。只需使用内置文档属性:
internal DateTime GetContentCreatedDate()
{
Word.Document doc = Globals.ThisAddIn.Application.ActiveDocument;
Office.DocumentProperties properties = (Office.DocumentProperties)doc.BuiltInDocumentProperties;
return (DateTime)properties[Word.WdBuiltInProperty.wdPropertyTimeCreated].Value;
}
答案 1 :(得分:0)
我已经能够以新的Office文件格式(例如:.docx,.xlsx等)获取此数据。
新的Office文件格式本质上是Zip文件,其中包含XML数据。
“内容已创建”日期保存在XML文件“ docProps\core.xml
”中的标签“ dcterms:created
”中。
一个例子可能是:
using System.IO.Compression;
using System.Xml;
ZipArchive archive = new ZipArchive(file.OpenBinaryStream());
var stream = archive.GetEntry(@"docProps/core.xml").Open();
using (var reader = XmlReader.Create(stream))
{
for (reader.MoveToContent(); reader.Read();)
if (reader.NodeType == XmlNodeType.Element && reader.Name == "dcterms:created")
{
stream.Close();
return DateTime.Parse(reader.ReadElementString());
}
}
我仍在研究旧的文件格式,但是OpenMCDF是解决这些问题的方法。