Установите OpenFileDialog.InitialDirectory на устройство MTP.

Я пишу приложение для получения изображений с камеры и хочу открыть OpenFileDialog с его InitialDirectory, установленным в качестве камеры.

Это отлично работает:

openFileDialog.InitialDirectory = "c:\\someFolder\\";

Но это не так:

openFileDialog.InitialDirectory = "CameraName\\";
openFileDialog.InitialDirectory = "My Computer\\CameraName\\";

Я предполагаю, что это потому, что это устройство MTP, и это не его «настоящее имя каталога». Есть ли способ сделать это?

Спасибо


person Matt    schedule 16.04.2012    source источник
comment
MTP не эмулирует файловую систему. microsoft.com/download/en/   -  person Hans Passant    schedule 17.04.2012


Ответы (2)


Насколько мне известно, это невозможно сделать, по крайней мере, с операциями ввода-вывода .NET, поскольку устройства MTP не соответствуют базовым операциям ввода-вывода (чтение/запись).

Здесь вам нужно либо найти какой-то способ принудительно сопоставить хранилище устройства MTP с буквой диска (однажды видел, как парень пытался это сделать, не уверен, откуда он взялся), либо просто извлечь SD-карту и подключить ее напрямую к ПК.

Извините, что не смог вам сильно помочь.

person Radhi    schedule 16.04.2012

Была та же проблема и нашел Как создать путь для mtp-устройств (можно использовать в диалоговом окне просмотра папок)?

Когда я вставляю "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" (который там называется мой компьютер) как InitialDirectory, он фактически показывает папку MTP :)

person Florian Straub    schedule 21.12.2020