我有一个拥有JPEG文件集合的用户,在Windows 7 NTFS文件系统上休息。
用户已使用Windows 7“详细信息”对话框注释了这些图像。对于每个文件,他们添加了标题,注释(可能与标题不同)和标签字段。
看起来标题作为EXIF数据的一部分存储在每个JPEG文件中。
然而,评论和标签字段不是。
我在替代数据流中寻找它们;没有人在场。我无法看到它们是否是NTFS扩展属性,因为我找不到专门列出这些属性的工具。
我的问题是:这个元数据存储在哪里,我如何从Ruby中访问它?
答案 0 :(得分:2)
从Vista开始,有一个属性系统(1和2),其中属性存储在文件本身中以便于移植,与存储在备用数据流中的数据相反。参见Alex Martelli在this question中的答案,这与Python类似。如果我理解了这个答案,您将希望找到一种方法来挂钩Windows Search API并查询System.Keywords和System.Comment属性。
PowerShell可能是这种情况下的方法;例如,“Windows桌面搜索cmdlet”at this link部分中有一个示例。但是,您可以通过Ruby与COM对象或WMI进行通信。
答案 1 :(得分:1)
Eric的回答非常接近(感谢Eric)。
答案是Windows uses XMP embedded in the file存储一些这些信息。其他一些部分存储在EXIF中。
XMP是首先由Adobe开发的RDF格式。
然而,在Ruby中提取和操作XMP的支持很差 - github上有一些库,但没有很好的集成。
我感兴趣的三个领域:
我正在使用的方法是mini_exiftool,它包含了基于Perl的EXIFTool程序。