我认为有一种方法可以扩展Windows Shell以制作(例如)其他类型的存档,这与ZIP文件“压缩文件夹”的支持相同。
我承认,当您熟悉shell术语时,Shell界面非常清晰,但实际上却很晦涩。我目前的猜测是IShellFolder
,但我认为这将在文件的同一位置创建一个额外的文件夹,而不是为文件本身提供特殊支持。
因此,要实施什么?
答案 0 :(得分:0)
没有专门用于实现压缩文件夹的shell接口。它实现为一个普通的 Shell命名空间扩展,它恰好创建/打开一个普通的.zip文件,并使用PIDL和标准shell接口(如IShellFolder
,{{}向Shell表示其内容。 1}},IShellItem
,IDataObject
等.SNE甚至将.zip文件本身表示为其父文件夹中的子文件夹,而不是文件,因此Shell可以遍历到.zip使用SNE的IEnumIDList
实现文件,就像任何其他文件夹一样。 Shell没有关于它正在访问.zip文件的概念,它只是另一个Shell项,其特性告诉Shell如何使用它。 SNE的实现处理访问/更新.zip文件而不是文件系统的细节。
MSDN的一部分描述了必须创建Shell命名空间扩展,包括:
Creating Shell Data Source Objects and Extending the Shell Namespace