2010-10-08 10 views
11

Ich habe eine Anwendung mit einer Option, um die ausgewählte Datei in dem Ordner anzuzeigen, in dem sich die Datei befindet. Meine Frage ist, wie erreiche ich das?Öffnen eines Explorer-Fensters mit der ausgewählten Datei

Um zu verdeutlichen, wenn ein Benutzer in meinem Programm die "Test.txt" -Datei ausgewählt hat, möchte ich ein Windows Explorer-Fenster öffnen und die Datei markieren, die der Benutzer ausgewählt hat. Sie können ähnliches Verhalten in LimeWire und uTorrent sehen. Wenn Sie eine Datei in einem dieser Programme auswählen und "In Ordner anzeigen" auswählen, wird ein Windows Explorer-Fenster angezeigt, in dem die Datei markiert und ausgewählt ist. Ich versuche, dieses Verhalten zu duplizieren.

Ich habe versucht, die folgende Zeile ein:

System.Diagnostics.Process.Start("Explorer"); 

Dies wird die Windows Explorer Popup-Fenster, aber es scheint immer standardmäßig zu öffnen, in "My Documents" -Ordner.

Antwort

25

Hier gehen Sie,

string fileToSelect = @"C:\temp.img"; 
string args = string.Format("/Select, \"{0}\"", fileToSelect); 

ProcessStartInfo pfi = new ProcessStartInfo("Explorer.exe", args); 
System.Diagnostics.Process.Start(pfi); 

Hinweis: Hinzufügen \"vor und nach der {0} Parameter ermöglicht die fileToSelect Zeichenfolge Leerzeichen enthalten (das heißt "C: \ Eigene Dateien").

Von diesem Thema:
Programmatically select multiple files in windows explorer

Cheers,

2

Es ist eine dokumentierte API, dies zu tun: SHOpenFolderAndSelectItems. Wer weiß, es könnte sogar das Richtige tun, wenn Explorer nicht die Standard-Shell ist :)

Verwandte Themen