كيف يمكنني فتح مستكشف Windows إلى دليل معين من داخل التطبيق WPF؟

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

  •  20-09-2019
  •  | 
  •  

سؤال

في تطبيق WPF، عندما ينقر المستخدم على زر أريد لفتح مستكشف Windows إلى دليل معين، كيف أفعل ذلك؟

وأتوقع شيئا من هذا القبيل:

Windows.OpenExplorer("c:\test");
هل كانت مفيدة؟

المحلول

لماذا لا Process.Start(@"c:\test");؟

نصائح أخرى

وهذا يجب أن تعمل:

Process.Start(@"<directory goes here>")

وأو إذا كنت ترغب طريقة لتشغيل البرامج / الملفات و / أو المجلدات المفتوحة:

        private void StartProcess(string path)
    {
        ProcessStartInfo StartInformation = new ProcessStartInfo();

        StartInformation.FileName = path;

        Process process = Process.Start(StartInformation);

        process.EnableRaisingEvents = true;
    }

وثم استدعاء الأسلوب وفي وضع قوسين إما الدليل من الملف و / أو مجلد أو هناك اسم التطبيق. وساعد هذا الأمل!

ويمكنك استخدام System.Diagnostics.Process.Start.

وأو استخدام WINAPI مباشرة مع شيء من هذا القبيل ما يلي، التي ستطلق EXPLORER.EXE. يمكنك استخدام المعلمة الرابع إلى ShellExecute لاعطائها دليل البدء.

public partial class Window1 : Window
{
    public Window1()
    {
        ShellExecute(IntPtr.Zero, "open", "explorer.exe", "", "", ShowCommands.SW_NORMAL);
        InitializeComponent();
    }

    public enum ShowCommands : int
    {
        SW_HIDE = 0,
        SW_SHOWNORMAL = 1,
        SW_NORMAL = 1,
        SW_SHOWMINIMIZED = 2,
        SW_SHOWMAXIMIZED = 3,
        SW_MAXIMIZE = 3,
        SW_SHOWNOACTIVATE = 4,
        SW_SHOW = 5,
        SW_MINIMIZE = 6,
        SW_SHOWMINNOACTIVE = 7,
        SW_SHOWNA = 8,
        SW_RESTORE = 9,
        SW_SHOWDEFAULT = 10,
        SW_FORCEMINIMIZE = 11,
        SW_MAX = 11
    }

    [DllImport("shell32.dll")]
    static extern IntPtr ShellExecute(
        IntPtr hwnd,
        string lpOperation,
        string lpFile,
        string lpParameters,
        string lpDirectory,
        ShowCommands nShowCmd);
}

والتصريحات تأتي من pinvoke.net موقع .

Process.Start("explorer.exe" , @"C:\Users");

واضطررت لاستخدام هذه، والطريقة الأخرى لمجرد تحديد TGT دير ستغلق نافذة المستكشف عند إنهاء طلبي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top