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");
Pourquoi pas Process.Start(@"c:\test");
?
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é!
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 .
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.