在Windows资源管理器中搜索文件并右键单击搜索结果中的文件时;有一个选项:“打开文件位置”。我想在我的C#WinForm中实现相同的功能。我这样做了:
if (File.Exists(filePath)
{
openFileDialog1.InitialDirectory = new FileInfo(filePath).DirectoryName;
openFileDialog1.ShowDialog();
}
有没有更好的方法呢?
答案 0 :(得分:40)
如果openFileDialog_View
是OpenFileDialog,那么您只会收到一个提示用户打开文件的对话框。我假设你想要在浏览器中打开这个位置。
你会这样做:
if (File.Exists(filePath))
{
Process.Start("explorer.exe", filePath);
}
要选择,文件explorer.exe
会采用/select
这样的参数:
explorer.exe /select, <filelist>
我是从SO帖子中得到的:Opening a folder in explorer and selecting a file
所以你的代码是:
if (File.Exists(filePath))
{
Process.Start("explorer.exe", "/select, " + filePath);
}
答案 1 :(得分:6)
这是我在代码中执行此操作的方式。这将打开资源管理器中的文件目录,并按照Windows资源管理器的方式选择指定的文件。
if (File.Exists(path))
{
Process.Start(new ProcessStartInfo("explorer.exe", " /select, " + path);
}