0

在我的 C# 应用程序(使用 Visual Studio 2010 终极版)中,用户需要选择某个文件。我创建了一个基本的文件浏览器,它几乎可以工作,但看起来不太好。

我被要求使用标准的 Windows 文件资源管理器。

我知道如何打开它:

Process.Start("explorer.exe");

但是我怎样才能得到一个从它返回的文件路径呢?

4

5 回答 5

4

为了选择一个文件,Net Framework 提供了 OpenFileDialog 组件。您可以在此处查看 MSDN的参考资料

但基本上,您所要做的就是:

创建 OpenFileDialog 的实例

using(OpenFileDialog openFileDialog1 = new OpenFileDialog())
{

设置初始属性

    openFileDialog1.InitialDirectory = "c:\\" ;
    openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*" ;
    openFileDialog1.FilterIndex = 2 ;
    openFileDialog1.RestoreDirectory = true ;

打开调用 ShowDialog 的控件,等待用户按下 OK 并获取选定的文件

    if(openFileDialog1.ShowDialog() == DialogResult.OK)
    {
        string fileSelected = openFileDialog1.FileName;
    }
}

注意 OpenFileDialog() 周围的 using 语句,虽然不是绝对必要的,但这将确保对话框的处置

于 2012-10-10T14:57:15.033 回答
2

你考虑过 OpenFileDialog 吗?

http://msdn.microsoft.com/en-us/library/aa984392(v=vs.71).aspx

于 2012-10-10T14:56:49.550 回答
2

您应该使用OpenFileDialog类。

于 2012-10-10T14:57:12.170 回答
0

也许您可以说服您的客户接受标准的探索者对话。您的客户很可能并不完全知道他的要求。

在 WPF 中,你会根据这个使用一些东西:

WPF 的 OpenDialog

在 Froms 中,你会根据这个使用一些东西:

http://www.dotnetperls.com/openfiledialog

于 2012-10-10T14:59:52.547 回答
0

这有点复杂,因为“explorer.exe”在 %PATH% 系统变量中,并且可执行路径可能没有存储在 Windows 的任何地方(在我看来,也许我错了)。

我知道的所有 Windows 版本中的“explorer.exe”都位于由 %WINDIR% 系统变量定义的目录中。您可以通过以下方法获取该变量:

Environment.GetEnvironmentVariable()

并添加字符串“explorer.exe”。

那是简单的方法。


更复杂的方法:

使用 WMI 后,您可以找到已经运行的 explorer.exe 进程的完整路径 - 稍微复杂一些,但它更正确的方法。

此处提供更多信息: 如何获取运行进程的完整路径

于 2012-10-10T15:08:08.517 回答