O .Net OpenFiledialog pode ser configurado para permitir que o usuário selecione um arquivo .lnk
-
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?
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 só 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