Можно ли настроить .NET OpenFileDialog, чтобы разрешить пользователю выбирать файл .lnk
-
23-09-2019 - |
Вопрос
Я хочу показать диалоговое окно, которое позволит пользователю выбрать файл ярлыка (.lnk).Моя проблема в том, что диалоговое окно пытается получить файл / URL, на который указывает ярлык, а не сам файл .lnk.
Как я могу сделать так, чтобы разрешалось выбирать файлы .lnk?
Решение
Вы можете использовать OpenFileDialog.DereferenceLinks
свойство влиять на это поведение (смотрите документ).
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;
}
Не связан с StackOverflow