Использование FolderBrowserDialog на съемном устройстве / съемном носителе

Я работаю над простым инструментом для копирования файлов с цифровых камер. Я написал код для копирования файлов, у меня все хорошо подключено.

Кажется, у меня проблема с FolderBrowserDialog. В Vista (я еще не проверял XP) я могу просматривать каталоги на камере. Однако FolderBrowserDialog не позволит мне выбрать каталог на камере. Кнопка ОК неактивна.

Глядя на путь к файлам на камере, это выглядит так:

Computer\[Camera Name]\Removable storage\AnotherDirectory\

Поскольку это недопустимый путь (например, C:\what), я предполагаю, что FolderBrowserDialog это не нравится.

Он работает нормально от правильного имени пути, но не с камеры...

У кого-нибудь есть предложения, чтобы обойти это?

Обновить

Для подтверждения вопроса oefe путь фактически отображается как:

Computer\[Camera Name]\Removable storage\AnotherDirectory\

Предложение ЧулиоМартинеса об использовании SHBrowseForFolder работает, и я отмечу как правильный ответ. Спасибо за вашу помощь, Чулио.

3 ответа

Решение

Я предполагаю, что местоположение не имеет представления (пути) в файловой системе, например, c:...\my camera.

Вы должны быть в состоянии получить PIDL папки (это должен быть один из флагов функции) и реализовать копию, используя интерфейсы оболочки COM.

SHBrowseForFolder

Использование PIDL для перечисления папки

Есть ли способ сопоставить путь камеры к букве диска? (Я думаю, что-то вроде "subst" или "net use" из командной строки.) Может, это обмануло бы FolderBrowserDialog вести себя так, как хотелось бы?

Откуда вы взяли путь? Из адресной строки в проводнике? Здесь отображается не путь к файловой системе, а его "удобное для пользователя" представление.

Чтобы получить путь, щелкните правой кнопкой мыши адресную строку и выберите "Скопировать адрес как текст" или "Изменить адрес".

Другие вопросы по тегам