[英]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?
http://msdn.microsoft.com/zh-CN/library/aa984392(v=vs.71).aspx
您应该使用OpenFileDialog类。
也许您可以说服客户接受标准的资源管理器对话。 您的客户很可能不完全了解他的要求。
在WPF中,您可以根据以下情况使用某些方法:
在Froms中,您将根据以下内容使用某些方法:
这有点复杂,因为“ explorer.exe”位于%PATH%系统变量中,并且可执行路径可能未存储在Windows中的任何位置(我认为这可能是我错了)。
我知道所有版本的Windows中的“ explorer.exe”位于%WINDIR%系统变量定义的目录中。 您可以通过方法获取该变量:
Environment.GetEnvironmentVariable()
并添加字符串“ explorer.exe”。
那是简单的方法。
更复杂的方法:
使用WMI之后,您可以找到已经运行的explorer.exe进程的完整路径-稍微复杂一点,但它的方法更正确。
此处的更多信息: 如何获取运行过程的完整路径
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.