Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在选定指定文件的情况下打开资源管理器窗口_C#_.net_Shell_Windows Explorer - Fatal编程技术网

C# 在选定指定文件的情况下打开资源管理器窗口

C# 在选定指定文件的情况下打开资源管理器窗口,c#,.net,shell,windows-explorer,C#,.net,Shell,Windows Explorer,我有一个应用程序,它可以选择在文件所在的文件夹中显示所选文件。我的问题是,我如何做到这一点 为了澄清,如果我的程序中的用户选择了“Test.txt”文件,那么我希望弹出一个Windows资源管理器窗口,突出显示用户选择的文件。在LimeWire和uTorrent中可以看到类似的行为。如果在这些程序中选择一个文件并选择“在文件夹中显示”,则会弹出一个Windows资源管理器窗口,突出显示并选中该文件。我试图复制这种行为 我尝试使用以下行: System.Diagnostics.Process.St

我有一个应用程序,它可以选择在文件所在的文件夹中显示所选文件。我的问题是,我如何做到这一点

为了澄清,如果我的程序中的用户选择了“Test.txt”文件,那么我希望弹出一个Windows资源管理器窗口,突出显示用户选择的文件。在LimeWire和uTorrent中可以看到类似的行为。如果在这些程序中选择一个文件并选择“在文件夹中显示”,则会弹出一个Windows资源管理器窗口,突出显示并选中该文件。我试图复制这种行为

我尝试使用以下行:

System.Diagnostics.Process.Start("Explorer");
这将弹出Windows资源管理器窗口,但是,默认情况下,它似乎总是在“我的文档”文件夹中打开

给你

string fileToSelect = @"C:\temp.img";
string args = string.Format("/Select, \"{0}\"", fileToSelect);

ProcessStartInfo pfi = new ProcessStartInfo("Explorer.exe", args);
System.Diagnostics.Process.Start(pfi);
注意:
{0}
参数之前和之后添加
\”
可使
文件选择字符串包含空格(即“C:\My Documents”)

来自此线程:


干杯,

有一个记录在案的API可以做到这一点:。谁知道,如果资源管理器不是默认的shell,它甚至可以做正确的事情:)

您可以在字符串中构造文件夹路径,然后将其发送到windows命令行进行浏览

对于VB:

Dim q as Char = ControlChars.Quote
Dim path As String = q & "D:\examples\test doc.txt" & q
Dim psi as New ProcessStartInfo("Explorer.exe", "/Select, " & path)
Process.Start(psi)
正如其他人指出的,包含空格的路径必须用引号括起来