2010-04-12 10 views
4

En C# Je veux ouvrir l'explorateur et dans cette fenêtre de l'explorateur doit être sélectionné certains fichiers. Je fais ceci comme ça:Ouvrir un dossier et sélectionner plusieurs fichiers

 string fPath = newShabonFilePath; 

     string arg = @"/select, "; 

     int cnt = filePathes.Count; 
     foreach (string s in filePathes) 
     { 
      if(cnt == 1) 
       arg = arg + s; 
      else 
      { 
       arg = arg + s + ","; 
      } 
      cnt--; 
     } 

     System.Diagnostics.Process.Start("explorer.exe", arg); 

Mais seul le dernier fichier de "arg" est sélectionné. Comment faire pour que tous les fichiers de arg soient sélectionnés, quand la fenêtre de l'explorateur est ouverte ..? Je pense qu'il est possible de le faire, parce que j'ai vu beaucoup de programmes d'applications Windows, qui ont cette astuce. Par exemple, lorsque j'importe des images de mon appareil photo reflex numérique sur le PC, enfin l'explorateur de Windows apears et toutes les nouvelles images importées sont sélectionnées.

Peut-être y at-il une option, pour faire tous les fichiers à sélectionner dans le dossier spécifié ..?

+0

Quel est votre objectif? Si vous voulez sélectionner ces fichiers pour que l'utilisateur puisse facilement les copier, pourquoi ne pas les copier vous-même dans le presse-papier? – RvdK

+1

Je veux seulement rendre ces fichiers visibles, afin que l'utilisateur ne puisse voir exactement que ces nouveaux fichiers générés. – Vytas999

+1

ne peut pas créer un dossier distinct des nouveaux fichiers créés? Et ouvre ça? – RvdK

Répondre

2

explorer.exe /select prend seulement 1 argument. À partir de KB 314853:

/sélectionnez, Ouvre une fenêtre affichant le dossier, le fichier ou le programme spécifié.

0

Pourriez-vous lancer chaque fichier dans la boucle?

foreach (string s in filePaths) 
    System.Diagnostics.Process.Start("explorer.exe", "/select, "+s); 

P.S. string.Join est une fonctionnalité grandement sous-utilisée de .NET

Questions connexes