在工做中碰到了一個問題就是使用.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文件的快捷方式,由於沒有好的辦法只能這樣文件
附:
對於其餘對話框也將會出現一樣的問題,處理方式本身想辦法。若是有解決辦法歡迎回帖,謝絕更換開發庫