以编程方式检索“Last Saved By”文件属性

我正在尝试使用C#作为MVC Web应用程序的一部分访问“Last Saved By”文件属性。 我能从文件的最后修改date获得几乎所有其他属性的所有者,我甚至使用Shell32得到真正晦涩的属性。

但是,我无法find一种方法来获取“Last Saved By”属性,当我检索我需要报告的每个文件的审计属性。 我需要从这些数据获取这些文件都是Excel。

可以使用WindowsAPICodePack.Shell库读取“Last Saved By”属性。 这个属性是特定于应用程序的,所以它不存在于某些文件中(例如它可以在.xls中使用,但不在.csv中)。 “Last Saved By”文件属性被命名为“LastAuthor”。

我用nuget获取包和下面的代码来访问属性:

string lastSavedBy = null; using (var so = ShellObject.FromParsingName(file)) { var lastAuthorProperty = so.Properties.GetProperty(SystemProperties.System.Document.LastAuthor); if (lastAuthorProperty != null) { var lastAuthor = lastAuthorProperty.ValueAsObject; if (lastAuthor != null) { lastSavedBy = lastAuthor.ToString(); } } } 

你可以访问的财产

 Workbook.BuiltinDocumentProperties(7) 

也许它会从C#访问索引6 。 请参阅MSDN文档 。

快速validation:在Excel VBA编辑器(Alt + F11)的即时窗口(Ctrl + G)中可以input
? ThisWorkbook.BuiltinDocumentProperties(7) ? ThisWorkbook.BuiltinDocumentProperties(7)并点击Enter来显示属性。 这是Excel的一部分。

还有一部分是如何从C#调用Excel的,但是我不打算介绍这个,你可以在这个主题上find数百个答案和例子。

也许更有效的只是添加引用到Microsoft.Office.Tools.Excel命名空间和直接工作,没有Excel。