【发布时间】:2010-02-28 10:49:33
【问题描述】:
我想显示一个允许用户选择快捷方式 (.lnk) 文件的对话框。我的问题是对话框试图获取快捷方式指向的文件/URL,而不是 .lnk 文件本身。
如何让它允许选择 .lnk 文件?
【问题讨论】:
标签: c# .net openfiledialog
我想显示一个允许用户选择快捷方式 (.lnk) 文件的对话框。我的问题是对话框试图获取快捷方式指向的文件/URL,而不是 .lnk 文件本身。
如何让它允许选择 .lnk 文件?
【问题讨论】:
标签: c# .net openfiledialog
您可以使用 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;
}
【讨论】: