繁体   English   中英

C#获取explorer.exe返回文件路径

[英]C# get explorer.exe to return a file path

在我的C#应用​​程序(使用Visual Studio 2010 Ultimate)中,用户需要选择某个文件。 我已经创建了一个基本的文件浏览器,该文件浏览器几乎可以正常运行,但是看起来并不好。

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

我知道如何打开它:

Process.Start("explorer.exe");

但是,如何获得从中返回的文件路径?

为了选择文件,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语句,尽管并非绝对必要,但这将确保释放对话框

您应该使用OpenFileDialog类。

也许您可以说服客户接受标准的资源管理器对话。 您的客户很可能不完全了解他的要求。

在WPF中,您可以根据以下情况使用某些方法:

WPF的OpenDialog

在Froms中,您将根据以下内容使用某些方法:

http://www.dotnetperls.com/openfile对话框

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

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

Environment.GetEnvironmentVariable()

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

那是简单的方法。


更复杂的方法:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM