编辑:找到解决方案,将在问题末尾的图像下注明
在对 SO 进行了大量研究之后,我发现使用选定文件打开资源管理器的方法是:
Process.Start("explorer.exe", "/select, " + path);
但是,当我使用受控输入执行此操作时,资源管理器仅打开其主窗口,但是当我将函数调用硬编码为路径变量中的相同值时(在我的控制测试中,它是 C:\Temp 中的文本文件)它可以工作。因此,如果我在路径为“C:\Temp\test.txt”时执行上述操作,它不会在临时文件夹中打开资源管理器,但是当我这样做时:
Process.Start("explorer.exe", "/select, C:\\Temp\\test.txt");
它完美地工作,打开资源管理器并突出显示文件。这里发生了什么?我的字符串变量的内部格式有什么问题吗?
(此外,我使用路径变量打开 FileInfo 时遇到了同样的问题。硬编码为相同的值会起作用,但使用该变量会给我一个“不支持给定路径的格式”异常”)
2 个资源管理器窗口(为安全而裁剪)是 2 个各自调用的结果。带有变量的那个显示了基本的资源管理器主页。硬编码的文件显示按预期选择的文件。
编辑:字符串前面隐藏了一个从左到右格式的隐藏字符。