可以设置.NET OpenFileDialog以允许用户选择.lnk文件

我想显示一个允许用户选择快捷方式(.lnk)文件的对话框。 我的问题是对话框尝试获取快捷方式指向的文件/ URL,而不是.lnk文件本身。

如何让它允许选择.lnk文件?

您可以使用OpenFileDialog.DereferenceLinks属性来影响该行为( 请参阅doc )。

 var dlg = new OpenFileDialog(); dlg.FileName = null; dlg.DereferenceLinks = false; if (dlg.ShowDialog() == DialogResult.OK) { this.label1.Text = dlg.FileName; } 

要么

 var dlg = new OpenFileDialog(); dlg.FileName = null; this.openFileDialog1.Filter = "Link (*.lnk)|*.lnk"; if (dlg.ShowDialog() == DialogResult.OK) { this.label1.Text = dlg.FileName; 

两种方法都会生成.lnk文件,但第一种方法允许选择.lnk文件普通文件,而第二种方法选择.lnk文件。

以下代码为我返回了一个.lnk文件名

  public static string PromptForOpenFilename (Control parent) { OpenFileDialog dlg = new OpenFileDialog (); dlg.Filter = "Link (*.lnk)|*.lnk"; dlg.Multiselect = false; dlg.FileName = null; DialogResult res; if (null != parent) res = dlg.ShowDialog (parent); else res = dlg.ShowDialog (); if (DialogResult.OK == res) return dlg.FileName; return null; }