2016-01-08 7 views
0

Есть ли способ обнаружить все накопители SD-карты, подключенные к настольному компьютеру? В Windows карты SD визуально отличаются от других устройств, таких как встроенные жесткие диски или аналогичные. Есть ли способ узнать, является ли диск накопителем SD-карты или нет?Обнаружение/проверка накопителя SD-карты

Java-способ перечисления всех доступных корней файловой системы, например, использует метод listRoots(), но не может указывать типы файловой системы, такие как внешний, внутренний, ОС-диск или что-то еще.

Возможно ли это в чистой Java?

Примечание:
Я не с просьбой обнаружить карту Android телефона SD, так как эти результаты при поиске моего вопроса.

+0

Возможно, это то, что вы ищете: http://stackoverflow.com/questions/3542018/how-can-i-get-list-of-all-drives-but-also-get-the-corresponding -drive-type-remo –

+0

@ChristophGiesche: Это полезно, но ни один из ответов не удовлетворяет – BullyWiiPlaza

ответ

0

This ответ решил.

Пример кода:

USBDeviceDetectorManager manager = new USBDeviceDetectorManager(); 
List<USBStorageDevice> usbStorageDevices = manager.getRemovableDevices(); 

for(USBStorageDevice usbStorageDevice : usbStorageDevices) 
{ 
    System.out.println(usbStorageDevice.getSystemDisplayName()); 
    System.out.println(usbStorageDevice.getDeviceName()); 
    System.out.println(usbStorageDevice.getRootDirectory()); 
} 

Я мои SD card, NAS, C: и D: диски подключены. Ниже печатается:

SANDISK (E:) 
SANDISK 
E:\ 

Как и следовало ожидать, только один результат возвращается, потому что SD card рассматривается как USB вследствие USB reader закупорки в мой ноутбук.

+0

Это ... на самом деле не работает? В вашем коде нет ничего, что бы отличить USB-SD-карту от любого другого USB-накопителя. И он не заберет SD-диски, которые не подключены через USB (да, они существуют). – duskwuff

+0

Хорошо, но это достаточно близко для моих целей, и в настоящее время большинство карт SD подключаются через USB-устройства для чтения карт SD. – BullyWiiPlaza

+0

Но не все устройства хранения USB являются устройствами для чтения SD-карт. Ваш код будет неверно идентифицировать что-нибудь еще, что может быть подключено через USB, например, флешку или внешний жесткий диск. – duskwuff

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