在所有types的文件上写入文件扩展属性“修订号”

我想用c#读/写窗口信息文件(扩展文件属性)

通过执行以下操作发现:在窗口资源pipe理器右键单击=>属性=>摘要选项卡。 我主要想要访问属性:

  • 标题
  • 类别
  • 修订编号

对于办公文档,我可以使用以下(使用Office.Interop)或使用DSOFile

private static string GetExcelWorkbookPropertyValue(_Workbook workbook, string propertyName) { DocumentProperties builtInProperties = (DocumentProperties)workbook.BuiltinDocumentProperties; string value = builtInProperties.Cast<DocumentProperty>().First(x => x.Name.Equals(propertyName, StringComparison.InvariantCultureIgnoreCase)).Value; return value ?? ""; } 

但是,我想要的是一个更一般的解决scheme,将与所有文件一起工作。

有人可以帮忙吗?

质疑附加信息,您还可以使用Shell32读取属性标题和类别

  Shell32.Shell shell = new Shell32.Shell(); //set the namespace to file path Shell32.Folder folder = shell.NameSpace(Path.GetDirectoryName(file)); //get ahandle to the file Shell32.FolderItem folderItem = folder.ParseName(Path.GetFileName(file)); //did we get a handle ? if (folderItem != null) { for (int i = 0; i < 100; i++) { string s = folder.GetDetailsOf(folderItem, i); System.Diagnostics.Debug.WriteLine(s); } } 

不过,我仍然在写修订号,但修订号看起来像是办公文件属性,不能写(我想这会打破办公室的跟踪stream程)。

没有意义的是,我可以修改它使用窗口资源pipe理器,该属性也是非办公文件可见的…我很难理解这一点。

这些信息存储在属性中 。 这里是一些标准的属性 。 不过,我不确定.NET Framework是否提供了这些接口的封装。