编辑:找到解决方案,将在问题末尾的图像下方注明
在SO上进行了大量研究之后,我发现使用选定文件打开资源管理器的方式是:
Process.Start("explorer.exe", "/select, " + path);
但是,当我使用受控输入来执行此操作时,资源管理器仅打开其主窗口,但是当我将函数调用编码为path变量中的相同值时(在我的控件中测试其在C:\ Temp中的文本文件)有用。因此,如果我在路径为“ C:\ Temp \ test.txt”时执行上述操作,则不会在temp文件夹中打开资源管理器,但是当我这样做时:
Process.Start("explorer.exe", "/select, C:\\Temp\\test.txt");
它完美运行,打开资源管理器并突出显示该文件。这是怎么回事我的字符串变量的内部格式有问题吗?
(此外,我使用path变量打开FileInfo时遇到了同样的问题。将其硬编码为相同的值是可以的,但是使用该变量给了我一个“不支持给定路径格式的异常”)>
2个浏览器窗口(为安全性而裁剪)是2个相应调用的结果。带有变量的那个显示基本的资源管理器主页。经过硬编码的文件将按预期显示选择的文件。
编辑:在字符串的前面隐藏了一个从左到右的隐藏格式字符。
答案 0 :(得分:1)
public static class Program
{
static void Main()
{
Explore("C:\\Users\\art_g\\Desktop\\Sample.txt");
}
static void Explore(string path) =>
Process.Start("explorer.exe", "/select, " + path);
}
像魅力一样工作。检查您的路径字符串。