我想顯示一個對話框,允許用戶選擇一個快捷方式(.lnk)文件。我的問題是,對話框試圖獲取快捷方式指向的文件/ URL,而不是.lnk文件本身。可以設置.NET OpenFileDialog以允許用戶選擇.lnk文件
如何讓它允許.lnk文件被選中?
我想顯示一個對話框,允許用戶選擇一個快捷方式(.lnk)文件。我的問題是,對話框試圖獲取快捷方式指向的文件/ URL,而不是.lnk文件本身。可以設置.NET OpenFileDialog以允許用戶選擇.lnk文件
如何讓它允許.lnk文件被選中?
您可以使用OpenFileDialog.DereferenceLinks
屬性來影響該行爲(see doc)。
var dlg = new OpenFileDialog();
dlg.FileName = null;
dlg.DereferenceLinks = false;
if (dlg.ShowDialog() == DialogResult.OK) {
this.label1.Text = dlg.FileName;
}
或
var dlg = new OpenFileDialog();
dlg.FileName = null;
this.openFileDialog1.Filter = "Link (*.lnk)|*.lnk";
if (dlg.ShowDialog() == DialogResult.OK) {
this.label1.Text = dlg.FileName;
這兩種方法都產生.lnk
文件,然而,第一種方法允許.lnk
文件或普通文件的選擇,而第二隻選擇.lnk
文件。
下面的代碼返回.LNK文件名對我來說
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;
}
將只返回的.lnk文件thouth。 DereferenceLinks允許選擇普通文件或.lnk文件。 – AxelEckenberger 2010-02-28 11:15:03