Open file location
Asked Answered
L

2

16

When searching a file in Windows Explorer and right-click a file from the search results; there is an option: "Open file location". I want to implement the same in my C# WinForm. I did this:

if (File.Exists(filePath)
{
    openFileDialog1.InitialDirectory = new FileInfo(filePath).DirectoryName;
    openFileDialog1.ShowDialog();
}

Is there any better way to do it?

Loredo answered 10/3, 2012 at 11:37 Comment(2)
What is the problem you face with your solution? if openFileDialog_View is an OpenFileDialog then you'll just get a dialog prompting a user to open a file.Athanasius
I want any alternative and better way if any?Loredo
A
59

If openFileDialog_View is an OpenFileDialog then you'll just get a dialog prompting a user to open a file. I assume you want to actually open the location in explorer.

You would do this:

if (File.Exists(filePath))
{
    Process.Start("explorer.exe", filePath);
}

To select a file explorer.exe takes a /select argument like this:

explorer.exe /select, <filelist>

I got this from an SO post: Opening a folder in explorer and selecting a file

So your code would be:

if (File.Exists(filePath))
{
    Process.Start("explorer.exe", "/select, " + filePath);
}
Athanasius answered 10/3, 2012 at 11:42 Comment(3)
this should be "explorer.exe"Janssen
nice Mr. gideon. but I want that file to be selected, How?Loredo
@H_wardak Updated my answer. A simple google search landed me to that SO post.Athanasius
P
7

This is how I do it in my code. This will open the file directory in explorer and select the specified file just the way windows explorer does it.

if (File.Exists(path))
{
    Process.Start(new ProcessStartInfo("explorer.exe", " /select, " + path);
}
Presurmise answered 10/3, 2012 at 11:45 Comment(2)
is there any benefit if I using "ProcessStartInfo"? It's work without it also.Loredo
Yes this opens the folder but not any apps associated with the extension. For instance if its a file.kml it might try to open google earth but sometimes you just want the file folder to openFroude

© 2022 - 2024 — McMap. All rights reserved.