【问题标题】:Is it possible to add custom metadata to file是否可以将自定义元数据添加到文件
【发布时间】:2010-07-13 08:03:33
【问题描述】:

我知道每个文件都有标题、主题、关键字和 cmets 等元数据:

但如果我需要自定义元数据,例如 标签,该怎么办

用 C# 可以做到吗?

【问题讨论】:

    标签: c# file-io metadata


    【解决方案1】:

    我知道每个文件都有标题、主题、关键字和 cmets 等元数据

    那不是真的。大多数文件类型没有具有“标准”形式的元数据。

    特别是,PDF 文件没有 Windows 资源管理器可识别的属性。

    元数据(文件属性)不是文件系统的功能。

    • Office 文件使用允许此类属性的结构化格式。
    • Jpeg ues EXIF,另一种格式

    【讨论】:

      【解决方案2】:

      如果使用 NTFS,您可以在 Alternate data stream 中存储您喜欢的任何内容

      【讨论】:

        【解决方案3】:

        这取决于您使用的文件类型是否支持此功能。例如,这对于文本文件是不可能的。

        【讨论】:

        • 我需要它来处理办公文件(doc、xls、ppt...)和 PDF
        • @Darin,有没有办法将自定义元数据附加到任何文件?我不介意它是否只能由我的程序读取,或者我是否可以教 Windows 资源管理器了解它
        • 是的,您可以使用备用数据流。 .. 哦,我下面的 Jesper Palm 提到了这一点。我应该补充一点,我觉得这些文件可能不会被复制,或者在文件系统之间复制时可能会被遗留下来,所以我会用 File+.ext 之类的东西来标记文件,这样你就知道要查看了。我真的应该编写一些代码让人们更容易做到这一点......编辑:看起来有dmitrybrant.com/adsmanager 并且robg的答案也很有趣。嗯..
        【解决方案4】:

        根据 Jesper 的评论,您可以使用 DSOFile 库来读取和写入存储在 ADS 中的自定义属性。
        对我来说效果很好,但请注意当文件传输到不同的文件系统(包括电子邮件)时属性会丢失。 有关 64 位实现,请参阅 http://www.keysolutions.com/blogs/kenyee.nsf/d6plinks/KKYE-79KRU6,链接到 MS original 和 cmets。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-11
          • 1970-01-01
          相关资源
          最近更新 更多