¿Puede el .NET OpenFileDialog ser configurado para permitir al usuario seleccionar un archivo .lnk
-
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?
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;
}