【问题标题】:Modifying file properties/metadata修改文件属性/元数据
【发布时间】:2011-08-31 19:29:08
【问题描述】:

我可以通过调用Shell32.Folder.GetDetailsOf 来获取文件的属性/元数据,但我似乎不知道如何修改这些属性。我指的属性是“扩展详细信息”,例如图像文件的相机型号和相机名称。

【问题讨论】:

  • 不幸的是,不能对图像执行此操作,因为 EXIF 数据位于图像二进制文件的开头并占用固定数量的空间。
  • Folder.GetDetailsOf 是一种 vba 方法,而不是 .NET 方法。您标记了问题 C#。请澄清。

标签: c# pinvoke file-attributes file-properties


【解决方案1】:

如果您确实在使用 C#,那么您必须执行一些 Interop/PInvoke 来调用该方法,因为那是 Shell 方法...

要获取+设置 EXIF 信息,您可以使用 Image 类(虽然不是最佳的),对于标准属性,您可以使用 FileInfo 类。

可以在here 找到一个非常好的与 EXIF 相关的东西,包括源代码。

【讨论】:

  • 你上一个链接中的类当然对处理很有帮助,但目前看来不能设置EXIF信息。另外,为什么Image 类不是设置 EXIF 的最佳选择?
  • AFAIK 使用 Image 类可能会导致重写图像文件,这可能会根据文件格式等产生。质量可能会略有下降......另一点是它将图像加载到内存中如果您只想处理 EXIF 数据,这可能是一个性能问题...
  • 目前看来使用Image 是我唯一的选择。我似乎找不到任何其他可以修改 EXIF 信息的库或类。
  • 有几个商业的,如果可以的话,我可以给你一些链接...
猜你喜欢
  • 2014-04-14
  • 1970-01-01
  • 2011-02-20
  • 1970-01-01
  • 2011-03-12
  • 2020-09-11
  • 1970-01-01
  • 2022-11-02
  • 1970-01-01
相关资源
最近更新 更多