我想打开刚刚保存文件的文件夹并选择文件,为此我使用了这个小代码:
var psi = new ProcessStartInfo("Explorer.exe", "/select," + dlg.FileName);
Process.Start(psi);
它完美地工作。
我需要把这段代码放在几个地方,所以我决定创建一个方法,这个方法中也有一个条件:
private static void OpenFolderAndSelectMyFile(string fileName)
{
if (MySettings.Default.openFolder == true)
{
var psi = new ProcessStartInfo("Explorer.exe", "/select," + fileName);
psi.WindowStyle = ProcessWindowStyle.Maximized;
Process.Start(psi);
}
}
这没有按预期工作:这打开了父文件夹(包含我的文件的文件夹)。它还会选择文件夹。
为什么会出现这种行为差异以及如何解决?
最佳答案
发生这种情况的唯一方法是 fileName
不是您原始代码中的名称。代码完全相同,并且会按预期工作,如果 fileName
实际上是原始代码位置中的内容。
很可能 fileName
现在实际上是文件夹的完整路径,而不是文件的完整路径包括文件名。
关于c# - 打开文件夹问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18254753/