如何在c#中读取自定义文件属性

我正在寻找一种在C#中读取文档属性的方法。 我听说过dsofile.dll,但它似乎是一个旧的COM包装器,并且想知道.NET框架/ C#是否有更现代的东西。 我实际阅读的不是Office文档文件,而是具有自定义属性的Solidworks .SLDDRW文件。 右键单击文件,然后转到“属性”窗口的“自定义”选项卡,可以在Windows资源管理器中查看和更改这些内容。

任何人都知道如何在C#/ .NET 3.5中阅读这些自定义属性?

谢谢!

SolidWorks系统使用OLE文档属性API。 正如您所指出的,Microsoft提供了一个示例DSOFile.dll,允许您访问这些属性:

http://support.microsoft.com/kb/224351

SolidWorks API还具有对这些属性的强大支持,但您必须加载Solidworks才能使用API​​,因此它并不总是理想的解决方案。 请注意,如果文件已在Solidworks中打开,则无法使用DSOfile.dll编辑自定义属性。

对您的问题的简单回答是,这些属性没有更新的API; 与许多其他遗留API(例如DDE)继续出现在生产环境中的方式大致相同,DSOFile非常适合需要,并且由于其相当低级的特性,实际上并不完全适合更新。 然而,DSOFile完全能够满足您的需求,并且与.NET完全协同工作。 源是可用的,如果这对您的用户来说是个问题,可以编译为64位; 它确实意味着你需要一个单独的64位安装,但这是一个很小的代价(加上SolidWorks开始时并不是完全交叉比特)。

如果我理解正确,这个post就有答案:

读/写’扩展’文件属性(C#)