我正在寻找一种在C#中读取文档属性的方法.我听说过dsofile.dll,但它似乎是一个旧的COM包装器,并且想知道.NET框架/ C#是否有更现代的东西.我实际阅读的不是Office文档文件,而是具有自定义属性的Solidworks .SLDDRW文件.您可以在Windows资源管理器中通过右键单击该文件来查看和更改这些内容,然后转到"属性"窗口的"自定义"选项卡.
任何人都知道如何在C#/ .NET 3.5中阅读这些自定义属性?
谢谢!
我尝试在SO上查看,但所有试图回答的问题都没有提供完整的答案.
我实际上想要在现有文件的详细信息选项卡中添加属性.文件是sldprt扩展名.必须在Windows资源管理器中显示属性/值.
不确定如何使用Windows API Code Pack Shell或DSOFile完成此操作?任何其他解决方案也很好.
我在Windows 10上使用VS,C#.
如果有人能提供详细的解决方案,我会非常感激.
完美的解决方案是:
如此这样的回答问题不属性的细节选项卡,也没有Windows资源管理器的详细视图中添加.
我认为这是可能的,因为SOLIDWORKS(3d包)将所有名为sw的属性添加到所有SOLIDWORKS文件中.详细信息窗口中有很多其他属性.
如果您没有正确的解决方案,请不要回答.非常感谢你.
我不确定这个问题与向文件添加新元数据属性有关.
预览:
编辑:
关于sldprt扩展的注册(供参考):
我试图在Windows 8.1中实现自定义ShellExtension.发现真的很好的SharpShell教程.
[ComVisible(true)]
[COMServerAssociation(AssociationType.AllFiles)]
public class CountExtProvider : SharpContextMenu
{
protected override bool CanShowMenu()
{
// We will always show the menu.
return true;
}
protected override ContextMenuStrip CreateMenu()
{
// Create the menu strip.
var menu = new ContextMenuStrip();
// Create a 'count lines' item.
var itemCountLines = new ToolStripMenuItem
{
Text = "Count Lines"
};
// When we click, we'll call the 'CountLines' function.
itemCountLines.Click += (sender, args) => CountLines();
// Add the item to …Run Code Online (Sandbox Code Playgroud)