1

我想要一个带有 ****.class*** ,****.jar*** 过滤器的打开文件对话框。我希望 *.jar 文件将被视为文件夹(按 OK 或双击应该显示 jar 文件内容 [ *.class] )。此功能与 TotalCommander 存档插件非常相似,可让您就地浏览存档文件(无需提取它们等...)

有什么想法可以做到吗?我可以使用已经实现的东西吗?

谢了,兄弟们

4

2 回答 2

2

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

shell 命名空间扩展是一个 COM 对象,它允许您在资源管理器 shell 中显示虚拟文件夹。因此,在您的情况下,shell 扩展将允许用户导航 jar 文件结构,就好像它位于您机器上的文件夹一样。

您可以使用托管代码编写 shell 扩展,但至少对于 4.0 之前的框架版本,MS 不支持此功能,因为将多个框架版本加载到进程中会产生冲突。现在 4.0 支持并排加载框架版本,也许这是支持的。

这是一篇关于编写 shell 命名空间扩展的文章的链接
http://msdn.microsoft.com/en-us/magazine/cc188741.aspx

我从未尝试过,但这是一个支持将 7-zip 支持的文件作为文件夹处理的扩展。如果您需要自己做这件事,也许这至少可以帮助您入门。
http://7zipshell.codeplex.com/

于 2010-05-30T14:43:13.637 回答
0

这里有一篇文章描述了在 C# 中打开 Jars:

http://www.codeproject.com/KB/files/opening_jars_cs.aspx

如果您将其与 Chris 关于编写扩展的回答结合起来,或者如果这样更容易编写自己的对话框,那么您应该能够做您想做的事情。

于 2010-05-30T14:49:55.973 回答