Ответ с форумов MSDN
Из коробки OpenFileDialog не может этого сделать.
Причиной может быть то, что .lnk
файлы могут использоваться пользователем для перехода в другую папку, где он ожидает файл, который необходимо открыть.
В приведенной выше ссылке пользователь Ryan разместил фрагмент, чтобы исключить выбранные .lnk
файлы в событии FileOK
.
Опять не мой код! Но поскольку некоторые веб-сайты перемещают свой контент и ссылка может перестать работать, здесь приведен фрагмент кода «Райана» (написанный на VB):
Public Class Home
Private WithEvents _fileDialog As New OpenFileDialog
Private Sub BrowseButton1_Click(sender As Object, e As EventArgs) Handles BrowseButton1.Click
With Me._fileDialog
.DereferenceLinks = True ' this allows the FileName property to have the Target of a shortcut link, instead of the shortcut link file name
.Multiselect = False
.Filter = "CSV (Comma delimited) (*.csv)|*.csv"
.ShowDialog()
End With
End Sub
Private Sub _fileDialog_FileOk(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles _fileDialog.FileOk
If Not Me._fileDialog.FileName Like "*.csv" Then
' cancel any shortcut files here
e.Cancel = True
MsgBox("You must select a CSV (Comma delimited) file.", MsgBoxStyle.Exclamation)
Else
Me.TextBox1.Text = Me._fileDialog.FileName
End If
End Sub
End Class