属性 => 摘要选项卡。我主要想访问属性: 职位 类别 修订号 对于办公文档,我可以使用以下(使-6ren">
gpt4 book ai didi

c# - 在所有类型的文件上写入文件扩展属性 "Revision Number"

转载 作者:可可西里 更新时间:2023-11-01 10:39:16 26 4
gpt4 key购买 nike

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

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

  • 职位
  • 类别
  • 修订号

对于办公文档,我可以使用以下(使用 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 读取属性 Title 和 Category

        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);
}
}

但是我仍然写了属性修订号,但是它看起来像修订号是一个 office 文档属性并且不能写(我猜它会破坏办公室的跟踪过程)。

没有意义的是,我可以使用窗口资源管理器对其进行修改,并且该属性对于非办公文档也是可见的……我很难理解这一点。

最佳答案

此信息存储在 properties 中.这里有一些 standard properties .不过,我不确定 .NET Framework 是否提供了这些接口(interface)的包装器。

关于c# - 在所有类型的文件上写入文件扩展属性 "Revision Number",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8384426/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com