使用PropertyHandler Shell Extension读写文件属性

时间:2019-11-03 18:48:35

标签: delphi

我正在尝试创建PropertyHandler shell扩展。 嵌入属性(标题,作者,.....)以在多台计算机或设备中使用同一文件的最佳方法是什么? StgCreateStorageEx ?种方法还是还有其他方法? 因为StgCreateStorageEx仅处理NTFS个文件,并且如果我在具有相同PropertyHandler的其他设备中打开文件,则不确定该文件是否具有这些属性。

有什么方法可以在我的文件中保存属性?

1 个答案:

答案 0 :(得分:1)

StgCreateStorageEx函数使用IStorage接口创建一个新的存储对象。这允许在单个二进制文件中存储多个数据对象,例如参见https://en.wikipedia.org/wiki/COM_Structured_Storage。因此,从技术上讲,您几乎可以在此文件中保存所有内容,包括嵌入式属性。

我不认为这仅限于NTFS:旧的Microsoft Office .doc格式(以及许多其他Microsoft产品)使用此存储格式,并且也可以使用FAT32。

如果要使用此二进制文件格式,则是完全不同的问题。由于您未提供有关文件内容和格式的任何信息,因此我不推荐任何东西。一种替代方法是将文件的内容存储在xml文件中。然后可以轻松添加标题和作者等属性。