هل يمكن إعداد .NET OpenFileDialog للسماح للمستخدم بتحديد ملف .lnk

StackOverflow https://stackoverflow.com/questions/2350802

  •  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;
  }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top