我使用了两个GUID来打开文件夹我的电脑和我的文档。
Process.Start("iexplore.exe", "::{20d04fe0-3aea-1069-a2d8-08002b30309d}");
Process.Start("iexplore.exe", "::{450d8fba-ad25-11d0-98a8-0800361b1103}");
但它会打开Internet Explorer,然后打开文件夹我的电脑和我的文档。
答案 0 :(得分:38)
使用这些硬编码的Guid值看起来不是达到此目的的最佳方法。
您可以使用Environment.GetFolderPath函数获取任何系统特殊文件夹的路径。它接受Environment.SpecialFolder枚举。
这样它会更强大,因为你不会有任何“神奇的”硬编码值。
以下是您使用它的方式:
//get the folder paths
string myComputerPath = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer);
string myDocumentsPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
//open explorer and point it at the paths
System.Diagnostics.Process.Start("explorer", myComputerPath);
System.Diagnostics.Process.Start("explorer", myDocumentsPath);
Windows 7用户的重要提示
似乎尝试使用此代码在Windows 7上打开“我的电脑”时,会导致“库”文件夹被打开。这是因为在Windows 7中,使用空路径运行资源管理器的默认行为已更改。
我已经在连接时提交了以下错误报告,如果您认为这很重要,请给它一个upvote!
(感谢JeremyK在评论中指出这一点)
答案 1 :(得分:9)
你试过了吗?
Process.Start("explorer.exe", "::{20d04fe0-3aea-1069-a2d8-08002b30309d}");
Process.Start("explorer.exe", "::{450d8fba-ad25-11d0-98a8-0800361b1103}");
答案 2 :(得分:6)
尝试使用explorer.exe:
Process.Start("explorer.exe", "::{20d04fe0-3aea-1069-a2d8-08002b30309d}");
Process.Start("explorer.exe", "::{450d8fba-ad25-11d0-98a8-0800361b1103}");
答案 3 :(得分:5)
最好还是完全跳过explorer
并直接“启动”GUID:
Process.Start("::{20d04fe0-3aea-1069-a2d8-08002b30309d}");
...
答案 4 :(得分:2)
这对我的Vista无效:
string myComputerPath = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer);
System.Diagnostics.Process.Start("explorer", myComputerPath);
作为Environment.SpecialFolder.MyComputer返回“”并且Process.Start(“explorer”,“”)打开我的文档。
GUID似乎也是这样做的:
Process.Start("explorer.exe", "::{20d04fe0-3aea-1069-a2d8-08002b30309d}");
答案 5 :(得分:1)
System.Diagnostics.Process.Start("...");
我知道它看起来很令人怀疑,但只是运行它。它会工作的。这是我的电脑的代码。我不知道我的文档应该是什么。
答案 6 :(得分:0)
System.Diagnostics.Process.Start("...");
我知道它看起来很令人怀疑,但只是运行它。它会工作的。这是我的电脑的代码。我不知道我的文件应该是什么。
在Windows 7上,这会导致打开运行可执行文件的文件夹,即“当前”文件夹。
答案 7 :(得分:0)
我必须打开MyDocuments并根据上面的评论我缩小了打开资源管理器的解决方案,没有副作用:
Process.Start("::{450d8fba-ad25-11d0-98a8-0800361b1103}");
我在Windows Server 2008 R2上测试过它。
答案 8 :(得分:-2)
Samdoss
只需输入
即可System.Diagnostics.Process.Start(directoryPath);
非常容易。试试吧。