Open a folder using Process.Start

后端 未结 14 2237
南笙
南笙 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:16

    You're using the @ symbol, which removes the need for escaping your backslashes.

    Remove the @ or replace \\ with \

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

    If you want to select the file or folder you can use the following:

    Process.Start("explorer.exe", "/select, c:\\teste");
    
    0 讨论(0)
  • 2020-11-30 23:18

    You should use one of the System.Diagnostics.Process.Start() overloads. It's quite simple!

    If you don't place the filename of the process you want to run (explorer.exe), the system will recognize it as a valid folder path and try to attach it to the already running Explorer process. In this case, if the folder is already open, Explorer will do nothing.

    If you place the filename of the process (as you did), the system will try to run a new instance of the process, passing the second string as a parameter. If the string is a valid folder, it is opened on the newly created process, if not, the new process will do nothing.

    I don't know how invalid folder paths are treated by the process in any case. Using System.IO.Directory.Exists() should be enough to ensure that.

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

    Do you have a lot of applications running when you are trying this? I encounter weird behavior at work sometimes because my system runs out of GDI Handles as I have so many windows open (our apps use alot).

    When this happens, windows and context menus no long appear until I close something to free up some GDI handles.

    The default limit in XP and Vista is 10000. It is not uncommon for my DevStudio to have 1500 GDI handles, so if you have a couple of copies of Dev studio open, it can eat them up pretty quickly. You can add a column in TaskManager to see how many handles are being used by each process.

    There is a registry tweak you can do to increase the limit.

    For more information see http://msdn.microsoft.com/en-us/library/ms724291(VS.85).aspx

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

    Does it open correctly when you run "explorer.exe c:\teste" from your start menu? How long have you been trying this? I see a similar behavior when my machine has a lot of processes and when I open a new process(sets say IE)..it starts in the task manager but does not show up in the front end. Have you tried a restart?

    The following code should open a new explorer instance

    class sample{
    
    static void Main()
    {
      System.Diagnostics.Process.Start("explorer.exe",@"c:\teste");
    }
    }
    
    0 讨论(0)
  • 2020-11-30 23:24

    Ive just had this issue, and i found out why. my reason isnt listed here so anyone else who gets this issue and none of these fix it.

    If you run Visual Studio as another user and attempt to use Process.Start it will run in that users context and you will not see it on your screen.

    0 讨论(0)
提交回复
热议问题