.Net OpenFileDialog Filter識別異常

在工做中碰到了一個問題就是使用.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文件的快捷方式,由於沒有好的辦法只能這樣文件


附:

對於其餘對話框也將會出現一樣的問題,處理方式本身想辦法。若是有解決辦法歡迎回帖,謝絕更換開發庫

相關文章
相關標籤/搜索