无法在 OpenFileDialog 中过滤 pdf 和 txt 文件

Cannot filter pdfs and txt files in OpenFileDialog

我一直在使用这个过滤器来过滤 pdf 和其他文件。

 ChooseDocumnetOfd.Filter = "Pdf files (*.pdf)|*.pdf |Office Files|*.doc;*.xls;*.ppt |Txt files (*.txt); *.txt | ";

长期以来一直运行良好。但是,我现在只能过滤Word文件。 为什么我现在不能过滤任何其他类型的文件?

这不是有效的过滤字符串;您在 Txt 文件条目后缺少管道符号,并且末尾有一个无关的管道。它应该是这样的:

ChooseDocumnetOfd.Filter = "Pdf files (*.pdf)|*.pdf|Office Files|*.doc;*.xls;*.ppt|Txt files (*.txt)|*.txt";

我会写:

 ChooseDocumnetOfd.Filter = "Pdf files (*.pdf)|*.pdf|Office files (*doc, *.xls, *.ppt)|*.doc;*.xls;*.ppt|Text files (*.txt)|*.txt";

我不知道为什么它以前能工作;您的问题不符合文档中规定的规则 (https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.filedialog.filter?view=netframework-4.7.2)

基本规则是:

description1|extensionlist1|description2|extensionlist2...

多个扩展名以分号分隔。说明可以包含任何文本,不必包含扩展名列表