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

标签 c# file properties

我正在寻找一种在 C# 中读取文档属性的方法。我听说过 dsofile.dll,但它看起来像是一个旧的 COM 包装器,并且想知道是否有更现代的东西用于 .NET 框架/C#。我实际阅读的不是办公文档文件,而是具有自定义属性的 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 一开始并不完全适合跨位)。

关于c# - 如何在 C# 中读取自定义文件属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3016888/

相关文章:

c# - 以下方法之间的调用不明确

c - 为什么“while(!feof(file))”总是错误的?

java - 在 Java 中,使用 java.nio 库和 FileChannel,如何从文件加载 Properties 对象?

javascript - 为什么 cloneNode 会排除自定义属性?

c# - 在 dbml 文件中创建关联?

c# - 将word文档嵌入到另一个没有图标

c# - 将计算属性添加到 wcf 客户端以进行绑定(bind)

c++ - 使用 Qt C++ 读取 CSS 文件

multithreading - 使用线程读取输入时缺少字符

c# - C# 中的自动属性