C# 在OpenFileC中打开归档文件内容#

C# 在OpenFileC中打开归档文件内容#,c#,user-interface,jar,zip,openfiledialog,C#,User Interface,Jar,Zip,Openfiledialog,我想要一个带有******.class***,******.jar***过滤器的打开文件对话框。 我希望*.jar文件将被视为文件夹(按OK或双击将显示jar文件内容[*.class])。此功能与TotalCommander archive插件非常相似,该插件允许您在适当的位置浏览内部归档文件(无需提取文件等) 你知道怎么做吗?我可以使用已经实现的东西吗 谢谢, Guy要使用标准的windows资源管理器和公共对话框执行此操作,您需要编写或找到合适的Shell命名空间扩展 shell命名空间扩展

我想要一个带有******.class***,******.jar***过滤器的打开文件对话框。 我希望*.jar文件将被视为文件夹(按OK或双击将显示jar文件内容[*.class])。此功能与TotalCommander archive插件非常相似,该插件允许您在适当的位置浏览内部归档文件(无需提取文件等)

你知道怎么做吗?我可以使用已经实现的东西吗

谢谢,
Guy

要使用标准的windows资源管理器和公共对话框执行此操作,您需要编写或找到合适的Shell命名空间扩展

shell命名空间扩展是一个COM对象,允许您在explorer shell中显示虚拟文件夹。因此,在您的情况下,shell扩展将允许用户浏览jar文件结构,就像它在您的机器上放置文件夹一样

您可以使用托管代码编写shell扩展,但至少对于4.0之前的框架版本,MS不支持这样做,因为将多个版本的框架加载到进程中可能会出现冲突。既然4.0支持并行加载框架版本,可能支持这一点

下面是一篇关于编写shell名称空间扩展的文章的链接

我从未尝试过这个,但这里有一个扩展,支持将7-zip支持的文件作为文件夹。如果您需要自己动手,这至少可以帮助您开始工作。

下面有一篇文章描述了如何在C#中打开JAR:


如果您将其与Chris answer关于编写扩展的内容相结合,或者您可以编写自己的对话框(如果这更简单的话),那么您应该能够做您想做的事情。

DotNetZip-使用C#、VB或任何.NET语言进行压缩和解压缩