C 如何使用win32读取和写入扩展windows文件属性

C 如何使用win32读取和写入扩展windows文件属性,c,winapi,C,Winapi,我想在windows文件中嵌入一些元数据 我遇到了扩展文件属性的概念,我相信它正是用于此目的的。例如,jpgs中的摄像机名称,avis中的插曲名称 除了一些非常模糊的非文档化内核api之外,我找不到如何使用win32 api在c/c++中实现这一点 扩展属性是文件系统的属性,即NTFS。与JPEG和AVIs关联的标记存储在文件本身中。Win32 API只提供文件系统中的EA,而不是嵌入文件中的EA。您必须查看第三方库才能检索嵌入的属性。在一般情况下,元数据可以以任何便于应用程序访问的方式进行格式

我想在windows文件中嵌入一些元数据

我遇到了扩展文件属性的概念,我相信它正是用于此目的的。例如,jpgs中的摄像机名称,avis中的插曲名称


除了一些非常模糊的非文档化内核api之外,我找不到如何使用win32 api在c/c++中实现这一点

扩展属性是文件系统的属性,即NTFS。与JPEG和AVIs关联的标记存储在文件本身中。Win32 API只提供文件系统中的EA,而不是嵌入文件中的EA。您必须查看第三方库才能检索嵌入的属性。

在一般情况下,元数据可以以任何便于应用程序访问的方式进行格式化。创建该规范是为了提供一组标准的元数据功能,这些功能涵盖了大多数通常有用的信息

然而,问题总是在于找到一种方法,将其与真实数据一起存储,并且不干扰那些认为自己知道如何处理格式的应用程序。对于众所周知的格式,这可能特别棘手

Adobe在这个问题上做了很多研究,并支持一项他们称之为取得良好效果的技术。XMP以与RDF密切相关的样式包含元数据,以及将元数据打包到许多其他文件格式中的约定,或者在没有可移植的方式将数据放入其中的情况下,包含在侧车文件中

在所有文件都存储在NTFS卷上的Windows系统上,可以想象扩展属性和备用数据流可用于存储元数据。最大的问题是可移植性。如果将文件复制到不支持备用流的介质(如任何FAT以及CD和DVD上使用的文件系统),备用流将丢失

这是一个严重的缺陷,这使得保存此类文件的有效完整备份比大多数用户实际使用的备份更加困难


有些应用程序使用备用数据流,但它们这样做时知道,它们添加的值在复制文件时可能会丢失。

什么类型的文件?磁盘上只有一个二进制数据文件吗?是的。我希望嵌入文件内容的散列