使用此工具为 .svg 扩展添加元数据属性处理程序后,我可以通过 Windows 资源管理器将关键字添加到 .svg 文件。
我现在正在寻找一种通过 C# 应用程序添加关键字的方法。我找到了这个解决方案,但System.AccessViolationException
被代码抛出:
using Microsoft.WindowsAPICodePack.Shell;
var tags = new[] {"foo", "bar"};
var file = ShellFile.FromFilePath(path);
// following statement throws System.AccessViolationException
file.Properties.System.Keywords.Value = tags;
可能是什么原因?
编辑:
此方法可以正常工作,但COMException
如果标签长度太长则会被抛出。
using DSOFile;
var file = new OleDocumentProperties();
file.Open(path);
file.SummaryProperties.Keywords = string.Join(";", tags);
file.Close(true);