我有一个应用程序,它根据自定义文档属性通过算法生成.xlsx文件的密码。通过将openxmlencryptproperty键设置为false来确保属性的持久性。因此,文件内容受密码保护,但属性是可见的(通过资源管理器)。
预期的功能是在尝试打开工作簿之前从属性重新计算密码。不幸的是,我可以找到获得这些属性的唯一方法涉及打开工作簿(通过System.IO.Packaging或OpenXml.Packaging)。
显然,资源管理器能够在不实际打开文件的情况下读取这些属性。如何在C#中复制此行为? (也许调用一个explorer实例?)。
答案 0 :(得分:0)
在尝试使用Microsoft.WindowsAPICodePack-Shell
API来利用这些属性之后,我能够通过StructuredStorage
API获取自定义属性的唯一方法就是this第二部分中提供的片段接受了类似问题的答案。