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

Retrieve and set file details using windows API?

我无法以编程方式 get/set 文件详细信息 Windows。

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

我想要 get/set 信息,例如“作者”或“标签”,或者您可以在文件属性 window 的“详细信息”选项卡中看到的所有其他信息,甚至是自定义信息(可能因文件本身而异)。

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

万一上面的 link 会崩溃,这里是要使用的核心函数:

SHGetPropertyStoreFromParsingName

这将 return 一个 IPropertyStore

可以用IPropertyStore::GetCount and IPropertyStore::GetAt

枚举

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

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

Windows 知道(通过特定于文件格式的 属性 处理程序)特定格式,例如 Office 文档和普通媒体文件,并且可以提取和通过 Windows Property System.

显示该信息

有许多示例,包括 propertyedit,这是一个命令行工具,演示如何设置、获取、枚举和检查具有 [=30 的任何文件的架构=] handler 与之关联。

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