C# – 添加,编辑和删除文件标签

我想在文件系统中添加和检索文件的标签。

您可以将Stackoverflow问题标记为相关主题,您可以在Windows文件系统中标记文件:

样品

以下方法不允许我访问文件的标记,而只能访问其他文件属性。

string file = @"C:\Users\me\Desktop\MyFile.doc"; FileInfo oFileInfo = new FileInfo(file); MessageBox.Show(oFileInfo.FullName); 

有没有想过如何使用System.IO的简单API访问标签?

由于可以将Stackoverflow问题标记为相关主题,因此可以在Windows文件系统中标记文件

这个假设是错误的。 您无法为所有文件类型添加标记。 看到这里 :

注意

您无法添加或修改某些类型文件的文件属性。 例如,您可以添加或修改Microsoft Office文档和搜索的属性,但不能添加或修改TXT或RTF文件的属性。

除了提到的类型,还有其他可以包含自定义标签的类型:

  • mp3文件可以包含各种版本的ID3标签
  • flac和ogg文件可以包含ogg-vorbis标记
  • jpeg文件可以包含exif数据
  • pdf文件可以包含各种信息字段

编辑/添加/删除这些标签应该使用专用库来完成。

这篇文章有一个很好的解释:

在Windows资源管理器中,您可以看到许多文件类型的很多文档属性。 漂亮的统一界面表明存在一些统一的属性存储。 事实并非如此。 Explorer Shell具有可扩展的属性表处理程序接口,可从各种文件类型中提取此信息。 有一个JFIF(JPEG)文件的处理程序,还有OLE文件(旧的Office格式)的处理程序,以及新的Office格式。

这篇文章展示了OP如何通过ShellFile成功添加标签。

还建议阅读: 在C#中获取和设置文件标签元信息