È possibile utilizzare System.Diagnostics.Process.Start
.
Oppure utilizzare direttamente WinApi con qualcosa di simile al seguente, che avvierà explorer.exe. È possibile utilizzare il quarto parametro su ShellExecute per assegnargli una directory iniziale.
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);
}
Le dichiarazioni provengono da pinvoke.net website.
@DanM Questo non è chiaramente un duplicato del collegamento che hai elencato. In quello, l'utente conosce già process.start. In questo, l'utente non ha idea di cosa usare per aprire una cartella. Si prega di spiegare il processo di pensiero dietro a contrassegnarlo come duplicato. Aspetterò. –