打开文件夹问题

Stu*_*urm 5 c# directory

我想打开刚刚保存文件的文件夹并选择文件,因为我使用这个小代码:

 var psi = new ProcessStartInfo("Explorer.exe", "/select," + dlg.FileName);
                Process.Start(psi);
Run Code Online (Sandbox Code Playgroud)

它完美地运作.

我需要将此代码放在几个地方,所以我决定创建一个方法,这个方法中还有一个条件:

 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);
     }    
 }
Run Code Online (Sandbox Code Playgroud)

这不能按预期工作:这将打开父文件夹(包含我的文件的文件夹).它还选择文件夹.

为什么这种行为差异以及如何解决呢?

Mik*_*oud 3

发生这种情况的唯一方法不是fileName原始代码中的情况。该代码完全相同,并且如果fileName实际上是原始代码位置中的内容,则可以按预期工作。

现在可能fileName实际上是文件夹的完整路径,而不是包括文件名的文件的完整路径。

  • 你是对的,我正在传递一个已修改的字符串。现在它可以正常工作了。 (2认同)