¿Puede el .NET OpenFileDialog ser configurado para permitir al usuario seleccionar un archivo .lnk

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

  •  23-09-2019
  •  | 
  •  

Pregunta

Quiero mostrar un cuadro de diálogo que le permitirá al usuario seleccionar un archivo de acceso directo (.lnk). Mi problema es que los intentos de diálogo para obtener el archivo / URL en el acceso directo que apunta a algo entonces el archivo .lnk sí mismo.

¿Cómo puedo hacer que autorice archivos .lnk que se seleccionarán?

¿Fue útil?

Solución

Puede utilizar la propiedad OpenFileDialog.DereferenceLinks para influir en ese comportamiento ( véase el documento ).

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

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

o

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

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

Ambos métodos dió un archivo .lnk, sin embargo el primer enfoque permite la selección de archivos .lnk o archivos normales, mientras que el segundo solamente selecciona .lnk archivos.

Otros consejos

El siguiente código devuelve un nombre de archivo .lnk para mí

  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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top