O .Net OpenFiledialog pode ser configurado para permitir que o usuário selecione um arquivo .lnk

StackOverflow https://stackoverflow.com/questions/2350802

  •  23-09-2019
  •  | 
  •  

Pergunta

Quero mostrar uma caixa de diálogo que permitirá ao usuário selecionar um arquivo de atalho (.lnk). Meu problema é que a caixa de diálogo tenta obter o arquivo/URL, o atalho está apontando para o próprio arquivo .lnk.

Como posso fazer com que os arquivos .lnk sejam selecionados?

Foi útil?

Solução

Você pode usar o OpenFileDialog.DereferenceLinks propriedade para influenciar esse comportamento (ver doc).

var dlg = new OpenFileDialog();
dlg.FileName = null;
dlg.DereferenceLinks = false;

if (dlg.ShowDialog() == DialogResult.OK) {
    this.label1.Text = dlg.FileName;
}

ou

var dlg = new OpenFileDialog();
dlg.FileName = null; 
this.openFileDialog1.Filter = "Link (*.lnk)|*.lnk";

if (dlg.ShowDialog() == DialogResult.OK) {
    this.label1.Text = dlg.FileName;

Ambos os métodos produzem um .lnk arquivo, no entanto, a primeira abordagem permite a seleção de .lnk arquivos ou arquivos normais, enquanto o segundo Selecione% s .lnk arquivos.

Outras dicas

O código a seguir retornou um nome de arquivo .lnk para mim

  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;
  }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top