C#get explorer.exe返回文件路径

时间:2012-10-10 14:54:49

标签: c# windows-explorer

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

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

我知道如何打开它:

Process.Start("explorer.exe");

但是如何从中返回文件路径?

5 个答案:

答案 0 :(得分:3)

要选择文件,Net Framework提供OpenFileDialog组件。 您可以在MSDN here

查看参考

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

创建一个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语句,虽然不是绝对必要,但这将确保处理对话框

答案 1 :(得分:2)

答案 2 :(得分:2)

您应该使用OpenFileDialog类。

答案 3 :(得分:0)

也许您可以说服您的客户接受标准的资源管理器对话。 很可能你的客户并不知道他要求的是什么。

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

  

OpenDialog for WPF

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

  

http://www.dotnetperls.com/openfiledialog

答案 4 :(得分:0)

这有点复杂,因为“explorer.exe”在%PATH%系统变量中,并且可执行路径可能不存储在Windows中的任何位置(在我看来,可能是错误的)。

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

Environment.GetEnvironmentVariable()

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

这很简单。


更复杂的方法:

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

更多信息: How to get full path of running process