【问题标题】:Can the .NET OpenFileDialog be setup to allow the user to select a .lnk file.NET OpenFileDialog 是否可以设置为允许用户选择 .lnk 文件
【发布时间】:2010-02-28 10:49:33
【问题描述】:

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

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

【问题讨论】:

    标签: c# .net openfiledialog


    【解决方案1】:

    您可以使用 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文件。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 只会返回 .lnk 文件。 DereferenceLinks 允许选择普通文件或 .lnk 文件。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-28
      • 2016-04-08
      相关资源
      最近更新 更多