C# EXIF图像数据和Windows资源管理器

C# EXIF图像数据和Windows资源管理器,c#,exif,windows-explorer,C#,Exif,Windows Explorer,我对EXIF图像属性和Windows资源管理器有问题 我已经在谷歌上搜索了很多关于这个问题的答案,但是没有结果。我已经编写了一些C#代码来获取/设置图像的EXIF属性,代码运行良好。例如,我可以获取title属性,更新它,然后重新检索新值 然而,尽管这一切都很好,但当我在Windows资源管理器中检查图像的属性时,“详细信息”选项卡仍然显示原始主题 以下是我的代码查找属性的方式: /// <summary> /// Subject Property /// </summary&

我对EXIF图像属性和Windows资源管理器有问题

我已经在谷歌上搜索了很多关于这个问题的答案,但是没有结果。我已经编写了一些C#代码来获取/设置图像的EXIF属性,代码运行良好。例如,我可以获取title属性,更新它,然后重新检索新值

然而,尽管这一切都很好,但当我在Windows资源管理器中检查图像的属性时,“详细信息”选项卡仍然显示原始主题

以下是我的代码查找属性的方式:

/// <summary>
/// Subject Property
/// </summary>
public string Subject
{
  get { return UnicodeToString((byte[])m_MetaData.GetQuery("/app1/ifd/exif:{uint=" + Convert.ToInt32(ExifFields.Subject) + "}")); }
  set { m_MetaData.SetQuery("/app1/ifd/exif:{uint=" + Convert.ToInt32(ExifFields.Subject) + "}", StringToUnicode(value)); }
}
有什么想法吗?(如果有帮助,我可以发布完整的课程)

PS-这是我的第一篇SO帖子,所以要温柔

编辑:


我注意到其他一些行为可能会有所帮助。如果我使用我的代码在没有exif值的图像上设置exif值,那么一切都正常。当我有一个带有修改过的预先存在的值的图像时,值“似乎”会被更改(即,当我在代码中读回它们已更改的值时),但我们仍然显示旧值。所以我的问题是更新属性而不是“创建”它们。

不知道标签40095可能是什么。使用exif引用:0x9c9f(40095)是-exif.Image.XPSubject,正如在中定义的,我认为这些是为Windows添加的。该引用很有用,因为它解释了文件的结构。为了不弄脏水,在编写描述(0x10e)时也会出现问题。是否尝试清理windows缩略图缓存?@Thaven-是的,只是尝试清理缩略图缓存,但没有用。
  public enum ExifFields
  {
    ...
    Subject = 0x9c9f
    ...
  }