web-dev-qa-db-fra.com

Comment puis-je ouvrir l'Explorateur Windows dans un certain répertoire à partir d'une application WPF?

Dans une application WPF, lorsqu'un utilisateur clique sur un bouton, je souhaite ouvrir l'explorateur Windows dans un répertoire donné, comment procéder?

Je m'attendrais à quelque chose comme ça:

Windows.OpenExplorer("c:\test");
138
Edward Tanguay

Pourquoi pas Process.Start(@"c:\test");?

285
Jamie Penney

Cela devrait fonctionner:

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

Ou si vous souhaitez une méthode pour exécuter des programmes/ouvrir des fichiers et/ou des dossiers:

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

        StartInformation.FileName = path;

        Process process = Process.Start(StartInformation);

        process.EnableRaisingEvents = true;
    }

Ensuite, appelez la méthode et entre parenthèses, mettez le répertoire du fichier et/ou du dossier ou le nom de l'application. J'espère que cela a aidé!

13
Anthony Smyth

Vous pouvez utiliser System.Diagnostics.Process.Start.

Ou utilisez directement WinApi avec quelque chose comme ce qui suit, qui lancera Explorer.exe. Vous pouvez utiliser le quatrième paramètre de ShellExecute pour lui donner un répertoire de départ.

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);
}

Les déclarations proviennent du site web pinvoke.net .

11
Abel
Process.Start("Explorer.exe" , @"C:\Users");

Je devais utiliser ceci, l’autre façon de spécifier que le répertoire tgt fermait la fenêtre de l’explorateur lorsque mon application s’arrêtait.

4