使用windows API检索和设置文件详细信息?



我无法在Windows上以编程方式获取/设置文件详细信息。

我设法获得了文件大小,创建时间,最后访问,但这些都是我实际上不需要的信息。

我想获取/设置诸如"作者"或";Tag"或者你可以在文件的属性窗口的详细信息选项卡中看到的所有其他信息,甚至是自定义的信息(这可能取决于文件本身)。

这些是properties。下面是一个如何操作的例子:https://github.com/microsoft/Windows-classic-samples/tree/main/Samples/Win7Samples/winui/shell/appplatform/PropertyEdit

如果上面的链接中断,下面是要使用的核心函数:

SHGetPropertyStoreFromParsingName

这会返回一个IPropertyStore

你可以通过IPropertyStore::GetCount和IPropertyStore::GetAt来枚举它

然后,对于每个键,您可以IPropertyStore::GetValue和IPropertyStore::SetValue

您所指的属性不是文件系统的特性。相反,它们是存储在特定已知文件格式中的元数据。

Windows知道(通过文件格式特定的属性处理程序)特定的格式,如Office文档和普通媒体文件,并可以通过Windows属性系统提取和呈现这些信息。

有许多例子,包括propertyedit,它是一个命令行工具,演示如何设置、获取、枚举和检查任何具有属性处理程序的文件的模式。

也许在UWP API中也有一些兴趣,可以通过Windows.Storage.FileProperties命名空间中的各种类访问该信息。

最新更新