C# 是否可以向文件中添加自定义元数据

C# 是否可以向文件中添加自定义元数据,c#,file-io,metadata,C#,File Io,Metadata,我知道每个文件都有元数据,如标题、主题、关键字和注释: 但是,如果我需要自定义元数据,例如标记,该怎么办 是否可以使用C#?这将取决于您使用的文件类型是否支持此功能。例如,对于文本文件,这是不可能的 我知道每个文件都有元数据,如标题、主题、关键字和注释 事实并非如此。大多数文件类型没有“标准”形式的元数据 特别是,PDF文件没有Windows资源管理器可以识别的属性 元数据(文件属性)不是文件系统的功能 Office文件使用允许此类属性的结构化格式 Jpeg使用EXIF,一种不同的格式 如果

我知道每个文件都有元数据,如标题、主题、关键字和注释:

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


是否可以使用C#?

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

我知道每个文件都有元数据,如标题、主题、关键字和注释

事实并非如此。大多数文件类型没有“标准”形式的元数据

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

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

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

如果使用NTFS,您可以根据Jesper的评论将任何您喜欢的内容存储在

中,您可以使用DSOFile库读取和写入存储在ADS中的自定义属性。
对我来说效果很好,但请注意,当文件传输到不同的文件系统(包括电子邮件)时,属性会丢失。
有关64位实现,请参阅链接到MS原件和注释。

我需要它用于office文件(文档、xls、ppt…)和PDFs@Darin,是否有任何方法将自定义元数据附加到任何文件?我不介意它是否只能被我的程序读取,或者我是否可以教Windows资源管理器关于它是的,你可以,使用另一个数据流。。我下面的杰斯珀·帕尔姆提到了这一点。我应该补充一点,我觉得在文件系统之间进行复制时,这些文件可能不会被复制,或者可能会被遗留下来,所以我会用file+.ext之类的东西标记文件,或者让您知道如何查看。我真的应该编写一些代码,让人们更容易做到这一点。。。编辑:看起来有,罗布的答案也很有趣。嗯。。