如何获得"内容创建"原产地? C#Winform

时间:2016-09-29 12:45:48

标签: c# file properties

如何在c#中获取此属性?

property screenshot

如何获取该属性的值作为示例?

2 个答案:

答案 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是解决这些问题的方法。