我想使用c#
读/写窗口信息文件(扩展文件属性)通过执行以下操作找到的:在窗口浏览器中右键单击=> properties =>摘要标签。我想要主要访问属性:
对于office文档,我可以使用以下(使用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 ?? "";
}
但我想要的是一个更通用的解决方案,适用于所有文件。
有人可以帮忙吗?
提问附加信息您还可以使用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);
}
}
但是我仍然写了正确的版本号,但它看起来像版本号是一个办公文档属性,无法写入(我想它会破坏办公室的跟踪过程)。
没有意义的是我可以使用窗口浏览器对其进行修改,并且该属性对于非办公文档也是可见的......我很难理解这一点。