C#阻止OpenFileDialog显示Zip文件的ZipEntries

时间:2014-01-04 10:31:14

标签: c# openfiledialog

我遇到openFileDialog问题(默认的openFileDialog):

我为OpenFileDialog定义了一个过滤器(LogFiles|*.log)。工作正常,用户只能在文件夹中选择* .log文件。

但是,如果这些* .log文件位于zip存档中,因为zip扩展本身被识别为Windows的文件夹(CompressedFolder)和OpenFileDialog窗口左侧Treeview中显示的zip文件,用户可以选择。*档案中的日志文件(我不希望这样!)

返回的文件名par OpenFileDialog在这种情况下是临时解压缩文件的文件名,因此似乎无法测试所选文件是否为zipEntry。

我只看到2个解决方案来解决我的问题:

1°)访问注册表,备份并删除HKEY_CLASSES_ROOT.zip以便以后恢复(非常糟糕的解决方案!)

2°)由于OpenFileDialog是一个密封类,实现我自己的OpenFileDialog,它阻止在zip中显示* .log文件

还有其他解决方案吗?

感谢。

1 个答案:

答案 0 :(得分:1)

我找到了OpenFileDialog.AutoUpgradeEnabled属性设置为false的解决方案。

使用此设置,不会显示OpenFileDialog的左侧树视图(仅限快捷方式),如果过滤器不允许其扩展名,则无法再显示存档内容: - )