.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文件的快捷方式,因为没有好的办法只能这样


附:

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

转载于:https://my.oschina.net/u/615762/blog/484979

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值