如何打开特定目录对话框?

时间:2012-08-31 18:43:30

标签: c# winforms

我正在开发一个关于这个问题的c#im程序。

我想显示引用特定目录的对话框。

我知道有OpenDialogFolder和SaveDialog,但我不想保存或打开任何我想要的文件只是打开一个特定的目录对话框。

喜欢这个截图:

enter image description here

1 个答案:

答案 0 :(得分:3)

看起来您只想打开Windows资源管理器的副本。您可以通过简单地调用Process.Start()并仅指定没有文件名的文件夹路径来完成此操作:

Process.Start(@"C:\Temp\");

在命令行(或快捷方式或运行命令)上给出如下命令的Windows shell的默认行为是打开Windows资源管理器以显示指定路径的内容。

现在,Windows资源管理器是一个外部进程,您正在启动它,然后让它执行它的操作。因此,它的行为与模态对话框完全不同,例如防止对话框失去焦点到另一个窗口。但是,您可以通过将Process.Start(进程)的结果分配给变量,然后在没有参数的情况下调用该进程上的WaitForExit()方法来模仿对话框中的“无法对应用程序执行任何操作”行为。这将阻止应用程序的主线程,直到用户关闭您打开的资源管理器窗口。它并不完美;通过阻止线程,应用程序将不会响应任何绘制自身的请求或执行任何其他基本的操作,即使对话框中断的窗口仍然会执行,您仍然可以在技术上“激活”用于启动Windows资源管理器的窗口。将它带到Windows资源管理器前面。资源管理器窗口也可以最小化(某些对话框通常不允许),并且您无法阻止它。