2010-10-08 4 views
11

J'ai une application qui a une option pour afficher le fichier sélectionné dans le dossier dans lequel réside le fichier. Ma question est, comment puis-je y parvenir?Ouverture d'une fenêtre de l'explorateur avec le fichier désigné sélectionné

Pour clarifier, si un utilisateur dans mon programme a sélectionné le fichier "Test.txt", alors je veux qu'une fenêtre de l'Explorateur Windows apparaisse et surligne le fichier sélectionné par l'utilisateur. Vous pouvez voir un comportement similaire dans LimeWire et uTorrent. Si vous sélectionnez un fichier dans l'un de ces programmes et choisissez "Afficher dans le dossier", il ouvre une fenêtre de l'Explorateur Windows avec le fichier en surbrillance et sélectionné. J'essaie de dupliquer ce comportement.

J'ai essayé d'utiliser la ligne suivante:

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

Cela cependant, contextuellle fenêtre de l'Explorateur Windows, il semble toujours d'ouvrir par défaut dans le dossier « Mes documents ».

Répondre

25

Ici, vous allez,

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

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

Note: Ajout \"avant et après le paramètre {0} permet à la chaîne fileToSelect contenir des espaces (par exemple "C: \ Mes documents").

De cette discussion:
Programmatically select multiple files in windows explorer

Cheers,

2

Il existe une API documentée pour ce faire: SHOpenFolderAndSelectItems. Qui sait, il pourrait même faire la bonne chose lorsque l'explorateur n'est pas le shell par défaut :)

Questions connexes