2010-04-12 2 views
4

В C# Я хочу открыть проводник, и в этом окне проводника должны быть выбраны некоторые файлы. Я так делаю:Открыть папку и Выбрать несколько файлов

 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); 

Но выбран только последний файл «arg». Как сделать, чтобы все файлы arg были выбраны, когда откроется окно проводника ..? Я думаю, что это возможно, потому что я видел много приложений для Windows, которые имеют этот трюк. В примере, когда я импортирую фотографии с моей камеры DSLR на компьютер, наконец, появляется окно просмотра Windows и все новые импортированные изображения.

Возможно, существует некоторая опция, чтобы все файлы были выбраны из указанной папки ..?

+0

Какую цель? Если вы хотите выбрать эти файлы, чтобы пользователь мог их легко скопировать, почему бы их не скопировать в буфер обмена? – RvdK

+1

Я хочу только сделать эти файлы видимыми, чтобы пользователь мог видеть только эти новые сгенерированные файлы. – Vytas999

+1

не может просто создать отдельную папку для новых созданных файлов? И открыть это? – RvdK

ответ

2

explorer.exe /select только принимает 1 аргумент. От KB 314853:

/select, Открывает вид окна с указанной папкой, файлом или программой.

0

Не могли бы вы запустить каждый файл в цикле?

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

P.S. string.Join является очень недоиспользуемой особенностью .NET.

Смежные вопросы