C#防止的OpenFileDialog显示Zip文件的ZipEntries(C# Prevent O

2019-10-19 04:37发布

我曾与一个OpenFileDialog(默认打开文件对话框)中的问题:

我已经定义了一个过滤器(LogFiles|*.log)为我打开文件对话框。 做工精细,用户只能选择文件夹中* .log文件。

但是,如果这些* .log文件是一个zip压缩文件,如拉链扩展本地认可像Windows和zip文件的打开文件对话框窗口的左边树状视图显示的文件夹(CompressedFolder),用户可以选择。*日志在存档文件(我不想说!)

在这种情况下返回面值打开文件对话框的文件名是一个临时提取文件的文件名,所以它似乎无法测试,如果选择的文件是一个ZipEntry的。

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

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

2°)作为的OpenFileDialog是密封类,实现自己的OpenFileDialog其防止拉链内部的* .log文件显示

是否有任何其他解决办法?

谢谢。

Answer 1:

我发现与OpenFileDialog.AutoUpgradeEnabled属性设置为false的解决方案。

使用此设置,则不会显示打开文件对话框的左侧树视图(仅快捷方式),并没有显示存档的内容更多的方式,如果其扩展名没有被过滤器允许:-)



文章来源: C# Prevent OpenFileDialog to display ZipEntries of a Zip file