.Net OpenFileDialog Filter识别异常

在工作中碰到了一个问题就是使用.Net2.0版本时发现系统自带的OpenFileDialog的Filter过滤器设置完成后,对于快捷方式无法过滤掉会被识别读取。

例如:管理办法 A1.pdf - 快捷方式.lnk

using (OpenFileDialog openFileDlg = new OpenFileDialog())
{
  openFileDlg.Filter = “shp|*.shp”;
  if (openFileDlg.ShowDialog()!= DialogResult.OK)
  {
     return false;
  }
  dstPath = openFileDlg.FileName;
}

执行上述代码在对话框中将会出现 管理办法 A1.pdf - 快捷方式.lnk 该快捷方式,并且可以作为文件被识别执行后续的过程,在

openFileDlg.FileName

的返回值却是 管理办法 A1.pdf,如果没有做二次判断,且在解析shp文件后缀名判断或异常处理将会引起宕机。

没有很好的处理方法。

可以尝试

1、进行文件的二次判断

openFileDlg.FileName

判断文件名的后缀名是否为我们需要的文件

2、设置文件获取后的文件名保持原有的快捷方式链接,通过判断后缀名*.lnk做二次判断

OpenFileDial.DereferenceLinks = false;

这种方法将会排除shp文件的快捷方式,因为没有好的办法只能这样


附:

对于其他对话框也将会出现同样的问题,处理方式自己想办法。如果有解决办法欢迎回帖,谢绝更换开发库

你可能感兴趣的:(.Net OpenFileDialog Filter识别异常)