使用 Process.Start 打开一个文件夹

我看到 其他话题了,还有一个问题。进程正在启动(在任务管理器上查看) ,但是文件夹没有在我的屏幕上打开。怎么了?

System.Diagnostics.Process.Start("explorer.exe", @"c:\teste");
280213 次浏览
E”,@“ c: teste”) ;
  • 打开 Run 对话框,输入“ glober.exe”,然后按回车键
  • 打开一个命令提示符,键入“ glober.exe”,然后按回车键
  • 当 at 符号为你做这些的时候,你正在逃避反斜杠。

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

    为了完整起见,如果你只想打开一个文件夹,使用以下方法:

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

    使用接受 ProcessStartInfo 实例并将 ProcessWindowStyle 属性设置为适合您的值的方法的重载版本。

    你确定“ c:\teste”文件夹存在吗?如果没有,浏览器将打开显示一些默认文件夹(在我的情况下是“ C:\Users\[user name]\Documents”)。

    确保 FileName 以 Path.DirectorySeparatorChar结尾,使其明确指向一个文件夹。(感谢@binki。)

    更新

    我尝试了以下变化:

    // 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");
    

    如果所有这些(好吧,除了抛出异常的那个)都不能在您的计算机上工作,我认为问题不在于代码,而在于环境。如果是这样的话,我会尝试以下两种方法中的一种(或两种都尝试) :

      此解决方案不适用于打开文件夹和选择项,因为似乎没有用于此的动词。

    • 打开 Run 对话框,输入“ glober.exe”,然后按回车键
    • 打开一个命令提示符,键入“ glober.exe”,然后按回车键
  • 打开 Run 对话框,输入“ glober.exe”,然后按回车键
  • 打开一个命令提示符,键入“ glober.exe”,然后按回车键
  • 下面的代码应该打开一个新的资源管理器实例

    class sample{
    
    
    static void Main()
    {
    System.Diagnostics.Process.Start("explorer.exe",@"c:\teste");
    }
    }
    

    在尝试这种方法时,是否有许多应用程序正在运行? 您可以在 TaskManager 中添加一列来查看每个进程使用了多少个句柄。

    我在工作中有时会遇到奇怪的行为,因为我的系统没有 GDI 句柄了,因为我打开了太多的窗口(我们的应用程序使用了很多)。

    您可以对注册表进行一些调整以增加限制。

    有关详细信息,请参阅 http://msdn.microsoft.com/en-us/library/ms724291(VS.85).aspx

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

    在任何情况下,我都不知道进程如何处理无效的文件夹路径。使用 System.IO.Directory.Exists()应该足以确保。

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

    这段代码在 VS2010环境中工作得很好,可以正确地打开本地文件夹,但是如果您在 IIS 中托管相同的应用程序并尝试打开它,那么它肯定会失败。

    回复

    我只是有这个问题,我找到了原因。我的理由没有列在这里,所以任何人谁得到这个问题,没有这些修复它。

    N VisualStudio 作为另一个用户并尝试使用 Process。启动它将在用户上下文中运行,您将不会在屏幕上看到它。

    如果作为另一个用户运行 VisualStudio 并尝试使用。启动它将在用户上下文中运行,您将不会在屏幕上看到它。

    如果要选择文件或文件夹,可以使用以下内容:

    Process.Start("explorer.exe", "/select, c:\\teste");
    

    我只是有这个问题,我找到了原因。我的理由没有列在这里,所以任何人谁得到这个问题,没有这些修复它。

    如果作为另一个用户运行 VisualStudio 并尝试使用。启动它将在用户上下文中运行,您将不会在屏幕上看到它。