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

时间:2010-02-28 10:49:34

标签: c# .net openfiledialog

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

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

2 个答案:

答案 0 :(得分:9)

您可以使用OpenFileDialog.DereferenceLinks属性来影响该行为(see 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个文件。

答案 1 :(得分:1)

以下代码为我返回了一个.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;
  }