我们现在有几个人经历了数千个jpg的目录,并在Windows资源管理器中手动设置了标签元数据项。我想要一些东西,只需阅读他们从中获取标签并将其应用于文件的电子表格。
在我完成的研究中,似乎"标签" Windows中的元数据实际上是"关键字" xmp元数据。我已成功设法使用以下代码读取此元数据:
FileStream fs = new FileStream(@"C:\test.jpg", FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
BitmapSource img = BitmapFrame.Create(fs);
BitmapMetadata md = (BitmapMetadata)img.Metadata;
StringBuilder tags = new StringBuilder();
foreach (String s in md.Keywords)
{
tags.Append(s);
tags.Append(";");
}
String fin = tags.ToString();
问题是关键字属性是只读集合。我找到了几个"线索"在写这个元数据时,但它们似乎都不起作用。它特别糟糕,因为如果我在notepad ++中打开文件,我可以看到存储元数据的确切位置,但是它们周围的xml标签的数量非常混乱,试图只是手动阻塞那里的东西赢了& #39;工作。有没有人有关于如何使用C#写入关键字jpg元数据的任何信息?
只是为了表明我真的尝试过,这里有一堆我尝试过的链接:
答案 0 :(得分:1)
经过更多的谷歌搜索(关键词没有多大意义),我终于找到了另一个问题,告诉我们如何使用Windows API代码包:Is it possible to set/edit a file extended properties with Windows API Code Pack?
要获取代码包,请在VS中打开包管理器控制台并输入Install-Package WindowsAPICodePack