Open a folder using Process.Start

后端 未结 14 2218
南笙
南笙 2020-11-30 22:56

I saw the other topic and I\'m having another problem. The process is starting (saw at task manager) but the folder is not opening on my screen. What\'s wrong?



        
相关标签:
14条回答
  • 2020-11-30 23:08

    You don't need the double backslash when using unescaped strings:

    System.Diagnostics.Process.Start("explorer.exe",@"c:\teste");
    
    0 讨论(0)
  • 2020-11-30 23:08

    System.Diagnostics.Process.Start("explorer.exe",@"c:\teste");

    Just change the path or declare it in a string

    0 讨论(0)
  • 2020-11-30 23:09

    Have you made sure that the folder "c:\teste" exists? If it doesn't, explorer will open showing some default folder (in my case "C:\Users\[user name]\Documents").

    Update

    I have tried the following variations:

    // opens the folder in explorer
    Process.Start(@"c:\temp");
    // opens the folder in explorer
    Process.Start("explorer.exe", @"c:\temp");
    // throws exception
    Process.Start(@"c:\does_not_exist");
    // opens explorer, showing some other folder)
    Process.Start("explorer.exe", @"c:\does_not_exist");
    

    If none of these (well, except the one that throws an exception) work on your computer, I don't think that the problem lies in the code, but in the environment. If that is the case, I would try one (or both) of the following:

    • Open the Run dialog, enter "explorer.exe" and hit enter
    • Open a command prompt, type "explorer.exe" and hit enter
    0 讨论(0)
  • 2020-11-30 23:09
    System.Diagnostics.Process.Start("explorer.exe",@"c:\teste"); 
    

    This code works fine from the VS2010 environment and opens the local folder properly, but if you host the same application in IIS and try to open then it will fail for sure.

    0 讨论(0)
  • 2020-11-30 23:13

    Just for completeness, if all you want to do is to open a folder, use this:

    System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo() {
        FileName = "C:\\teste\\",
        UseShellExecute = true,
        Verb = "open"
    });
    

    Ensure FileName ends with Path.DirectorySeparatorChar to make it unambiguously point to a folder. (Thanks to @binki.)

    This solution won't work for opening a folder and selecting an item, since there doesn't seem a verb for that.

    0 讨论(0)
  • 2020-11-30 23:15

    You're escaping the backslash when the at sign does that for you.

    System.Diagnostics.Process.Start("explorer.exe",@"c:\teste");
    
    0 讨论(0)
提交回复
热议问题