Can the .NET OpenFileDialog be setup to allow the user to select a .lnk file

后端 未结 2 1704
长发绾君心
长发绾君心 2021-01-17 23:48

I want to show a dialog that will allow the user to select a shortcut (.lnk) file. My problem is that the dialog tries to get the file/URL the shortcut is pointing to rather

相关标签:
2条回答
  • 2021-01-18 00:20

    The following code returned a .lnk filename for me

      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;
      }
    
    0 讨论(0)
  • 2021-01-18 00:24

    You can use the OpenFileDialog.DereferenceLinks property to influence that behaviour (see doc).

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

    or

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

    Both methods yield a .lnk file, however the first approach allows the selection of .lnk files or normal files, while the second only selects .lnk files.

    0 讨论(0)
提交回复
热议问题