Comment ouvrir l'Explorateur avec un fichier spécifique sélectionné?
Je voudrais le code de la fonction à laquelle vous pouvez passer d'un chemin de fichier, par exemple:
C:\FOLDER\SUBFOLDER\FILE.TXT
et il allait ouvrir l'Explorateur Windows avec le dossier contenant le fichier, puis sélectionnez ce fichier dans le dossier. (Similaires à "Afficher Dans le Dossier" concept utilisé dans de nombreux programmes.)
Comment puis-je faire cela?
- Aussi, est-il possible de sélectionner plusieurs fichiers?
- Ne semble pas si
- Double Possible de mettre en Œuvre des "Ouvrir le Dossier Contenant" et mettez en surbrillance le fichier
Vous devez vous connecter pour publier un commentaire.
Façon la plus simple sans utiliser Win32 shell fonctions est tout simplement de lancer explorer.exe avec le
/select
paramètre. Par exemple, le lancement du processusexplorer.exe /select,"C:\Folder\subfolder\file.txt"
va ouvrir une nouvelle fenêtre de l'explorateur de C:\Folder\subfolder avec file.txt sélectionné.
Si vous désirez le faire par programmation sans avoir à lancer un nouveau processus, vous aurez besoin d'utiliser la fonction shell
SHOpenFolderAndSelectItems
, qui est ce que la/select
commande explorer.exe utilise en interne. À noter que cela nécessite l'utilisation de PIDLs, et peut être un véritable PITA si vous n'êtes pas familier avec la façon dont le shell Api de travail.Voici un complet, la programmation de la mise en œuvre de la
/select
approche, avec chemin d'accès de nettoyage grâce à des suggestions de @Bhushan et @tehDorf:Référence: Explorer.exe commutateurs de ligne de Commande
SHOpenFolderAndSelectItems
au cours de la séquence d'ouverture, cependant.Regex
pour nettoyer le chemin d'accès au fichier, vous pouvez utiliserfilePath = System.IO.Path.GetFullPath(filePath);
. Il normalise le répertoire des séparateurs et il sera également résoudre des chemins relatifs, tels que si vous passez quelque chose comme@"..\some\relative\file\path.txt"
ou@"C:\Some\relative\..\file\path.txt"
. Vous pouvez également mettre à jour l'exemple de l'utilisation de la nouvelle chaîne d'interpolation:Process.Start("explorer.exe", $"/select,\"{filePath}\"");
Lors de l'exécution de la commande si le chemin d'accès contient plusieurs barres obliques, alors il ne sera pas ouvrir le dossier et sélectionnez le fichier correctement
Assurez-vous que votre chemin d'accès au fichier devrait ressembler à ceci
C:\a\b\x.txt
au lieu de
C:\\a\\b\\x.txt
La pris en charge méthode depuis Windows XP (c'est à dire pas pris en charge sur Windows 2000 ou une version antérieure) est SHOpenFolderAndSelectItems:
À suivre sur @Mahmoud Al-Qudsi de réponse. quand il dit "le lancement du processus", c'est ce qui a fonctionné pour moi: