Использование FolderBrowserDialog на съемном устройстве / съемном носителе - PullRequest
4 голосов
/ 12 февраля 2009

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

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

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

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

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

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

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

Обновление

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

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

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

Ответы [ 3 ]

3 голосов
/ 14 февраля 2009

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

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

SHBrowseForFolder

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

0 голосов
/ 15 февраля 2009

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

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

0 голосов
/ 13 февраля 2009

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

...