我想创建一个新的存根文件“test.mp3”,并为其添加一个Window属性(例如System.Author)。
该解决方案必须可用于文本,图片,视频等多个文件扩展名...
如果我只是创建一个文件并使用IShellItem2 :: GetPropertyStore,我会因无效参数而导致HRESULT失败。
在真正的音乐文件上使用IShellItem2 :: GetPropertyStore我可以读取和写入它的属性。
请先测试您的建议。
答案 0 :(得分:2)
Property Stores通常在文件本身中访问和存储数据。在你的mp3文件的情况下,它将尝试读取和写入ID3标签。此外,Property Stores不存储在数据库中,也不能随意添加到不支持它的文件中。
你很可能需要implement your own property handlers去做你想要完成的事情。对于已有处理程序的类型,您必须使用自己的处理程序替换系统处理程序。
你的mp3测试失败的最可能原因是你有一个没有数据且没有有效ID3标签的空文件。