在工做中碰到了一个问题就是使用.Net2.0版本时发现系统自带的OpenFileDialog的Filter过滤器设置完成后,对于快捷方式没法过滤掉会被识别读取。c#
例如:管理办法 A1.pdf - 快捷方式.lnkspa
using (OpenFileDialog openFileDlg = new OpenFileDialog()) { openFileDlg.Filter = “shp|*.shp”; if (openFileDlg.ShowDialog()!= DialogResult.OK) { return false; } dstPath = openFileDlg.FileName; }
执行上述代码在对话框中将会出现 管理办法 A1.pdf - 快捷方式.lnk 该快捷方式,而且能够做为文件被识别执行后续的过程,在code
openFileDlg.FileName
的返回值倒是 管理办法 A1.pdf,若是没有作二次判断,且在解析shp文件后缀名判断或异常处理将会引发宕机。开发
没有很好的处理方法。class
能够尝试pdf
一、进行文件的二次判断方法
openFileDlg.FileName
判断文件名的后缀名是否为咱们须要的文件异常
二、设置文件获取后的文件名保持原有的快捷方式连接,经过判断后缀名*.lnk作二次判断异常处理
OpenFileDial.DereferenceLinks = false;
这种方法将会排除shp文件的快捷方式,由于没有好的办法只能这样文件
附:
对于其余对话框也将会出现一样的问题,处理方式本身想办法。若是有解决办法欢迎回帖,谢绝更换开发库