Откройте папку и выберите несколько файлов - PullRequest
4 голосов
/ 12 апреля 2010

В 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 Explorer и выбираются все новые импортированные изображения.

Может быть, есть какой-то вариант, чтобы все файлы были выбраны из указанной папки ..?

Ответы [ 2 ]

2 голосов
/ 12 апреля 2010

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

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

0 голосов
/ 12 апреля 2010

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

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

P.S. string.Join - это сильно недоиспользуемая функция .NET

...