Open a folder using Process.Start
Solution 1:
Have you made sure that the folder "c:\teste
" exists? If it doesn't, explorer will open showing some default folder (in my case "C:\Users\[user name]\Documents
").
Update
I have tried the following variations:
// opens the folder in explorer
Process.Start(@"c:\temp");
// opens the folder in explorer
Process.Start("explorer.exe", @"c:\temp");
// throws exception
Process.Start(@"c:\does_not_exist");
// opens explorer, showing some other folder)
Process.Start("explorer.exe", @"c:\does_not_exist");
If none of these (well, except the one that throws an exception) work on your computer, I don't think that the problem lies in the code, but in the environment. If that is the case, I would try one (or both) of the following:
- Open the Run dialog, enter "explorer.exe" and hit enter
- Open a command prompt, type "explorer.exe" and hit enter
Solution 2:
Just for completeness, if all you want to do is to open a folder, use this:
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo() {
FileName = "C:\\teste\\",
UseShellExecute = true,
Verb = "open"
});
Ensure FileName ends with Path.DirectorySeparatorChar
to make it unambiguously point to a folder. (Thanks to @binki.)
This solution won't work for opening a folder and selecting an item, since there doesn't seem a verb for that.
Solution 3:
If you want to select the file or folder you can use the following:
Process.Start("explorer.exe", "/select, c:\\teste");
Solution 4:
You're using the @ symbol, which removes the need for escaping your backslashes.
Remove the @ or replace \\ with \
Solution 5:
You don't need the double backslash when using unescaped strings:
System.Diagnostics.Process.Start("explorer.exe",@"c:\teste");