最近在使用OpenFileName结构时,碰到一个需求,就是要求只将后缀为.xlsx和后缀为.csv的文件进行返回显示,但是上网搜索如何书写openFileName.filter并没有搜到描述特别清楚的,最后经过尝试摸索彻底弄明白了过滤器的语法规则。
首先在filter表达式中是由“文件筛选字符串对”+“ MS-DOS 通配符文件”两部分组成:
文件筛选字符串对:就是对被筛选的格式说明,比如说图中的"Excel文件(*.xlsx;*.csv)"。
MS-DOS通配符文件:用来定义返回文件类型的语句。通常是以*.txt或者*.xlsx格式进行书写。
(1)筛选单一格式文件
在书写filter表达式时,文件筛选表达式后,接着书写MS-DOS通配符文件,书写通配符要以"\0"开头,写完通配符后要以"\0"结尾,最后结束还要再加一个"\0"。比如想要筛选出.xlsx类型的文件可以这样写:
(2)筛选出多个格式类型的文件
比如说,在筛选时需要将.xlsx后缀的文件和.csv类型的文件同时支持返回显示。则文件筛选表达式直接书写对应的要支持的文件类型即可,不同类型之间用";"隔开,如图
然后通配符同样以"\0"开头并以"\0"结尾,中间不同的格式类型用";"隔开,最后以"\0"结尾。如图
最后的打开效果就是这样
(3)分别筛选单一格式类型的文件
比如说想要只打开.xlsx类型的文件,同时还想要下拉打开.csv类型的文件。则同样先书写文件筛选表达式然后紧跟其通配符表达式写完后再接着写新的文件筛选表达式并紧跟其通配符表达式,最后同样以"\0"结尾。如图所示:
最后的打开效果就是这样:
(4)打开所有类型的文件
如果想要返回打开所有类型的文件,则可以这样写:
最后的打开效果是这样:
参考文献