有没有办法检测连接到台式电脑的所有SD卡驱动器?在Windows中,SD卡在视觉上与其他设备(如内置硬盘驱动器或类似设备)截然不同。有没有办法判断驱动器是否是SD卡驱动器?
列出所有可用文件系统根的Java方法,例如使用listRoots()
方法,但它无法告诉文件系统类型,如外部,内部,操作系统驱动器等等。
这在纯Java中是否可行?
注意:
我不要求检测Android手机SD卡,因为这些是搜索我的问题时的结果。
答案 0 :(得分: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
插入笔记本电脑。