2010-02-28 10 views

Odpowiedz

9

Możesz użyć właściwości OpenFileDialog.DereferenceLinks, aby wpłynąć na to zachowanie (see doc).

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

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

lub

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

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

Obie metody dają plik .lnk jednak pierwsze podejście umożliwia wybór .lnk plików lub normalnych plików, a drugi tylko wybiera .lnk plików.

1

Poniższy kod zwrócony do pliku .lnk dla mnie

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

powróci tylko pliki .lnk thouth. DereferenceLinks pozwala na wybranie zwykłych plików lub plików .lnk. – AxelEckenberger

Powiązane problemy