【问题标题】:How to read and write extended windows file attributes with win32win32如何读写扩展windows文件属性
【发布时间】:2009-06-01 21:24:06
【问题描述】:

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

我遇到了扩展文件属性的概念,我相信它就是用于此目的。例如,jpgs 中的相机名称,avis 中的剧集名称。

除了一些非常晦涩的未记录内核 API,我找不到如何在 c/c++ 中使用 win32 api 执行此操作。

【问题讨论】:

  • 什么样的文件?只是磁盘上的二进制数据文件?
  • 是的。我希望嵌入文件内容的哈希

标签: c winapi


【解决方案1】:

扩展属性是文件系统的一个属性,即 NTFS。与 jpeg 和 AVI 关联的标签存储在文件本身中。 Win32 API 只会为您提供来自文件系统的 EA,而不是嵌入在文件中的那些。您必须查看第三方库才能检索嵌入的属性。

【讨论】:

    【解决方案2】:

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

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

    Adobe 已经对这个问题进行了大量研究,并且正在支持他们称为XMP 的技术以取得良好的结果。 XMP 包含与 RDF 密切相关的样式的元数据,以及将其打包到许多其他文件格式中的约定,或者在那些没有可移植方式将数据放入其中的情况下的边车文件中。

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

    这是一个严重的缺陷,使得对此类文件进行有效且完整的备份比对大多数用户而言实际更加困难。

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

    【讨论】:

      猜你喜欢
      • 2010-09-18
      • 2021-03-11
      • 1970-01-01
      • 2018-07-08
      • 2022-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多