ADS(备用流)与 DSO(文件属性)存储元数据

ADS (Alternate Stream) versus DSO (File Properties) for Storing Metadata

我想以编程方式将一小段元数据添加到一些任意类型的文件中。我正在考虑使用 ADS 或 DSOFile。哪个选项更可取?优缺点都有什么?效率或稳健性是否存在显着差异?

ADS 是一个强大的解决方案 - 它在文件系统级别上 - 只要您的文件保留在 NTFS 上并且您可以控制它们会发生什么。如果您要通过网络将它们移动到 FAT32,或将它们存档,您将丢失 ADS 中的内容。有些软件还会在保存时创建新文件(据我所知,Adobe Illustrator 就是这样做的)。我认为对 DSOFile 的支持较少,在这种情况下我宁愿选择 XMP。

您还可以考虑扩展文件属性,参见Getting Extended File Properties in C# .net

  1. 据我了解,DSOFile 写入 ADS,尤其是自定义属性。
  2. DSOFile 不是特定于 Office 的,因为它将数据写入任何 NTFS 文件的 ADS。我目前在 PDF、DWG 文件上广泛使用它。
  3. 使用 ADS(其中 DSOFile 是 2005 年的旧实现),如 Rob Goldwein 所述,如果传输到非 NTFS 文件系统,数据 丢失。使用 windows,它实际上是 prompts/notify 的用户,例如将数据传输到 usb。