有没有办法检测连接到台式计算机的所有 SD 卡驱动器?在 Windows 中,SD 卡在视觉上与内置硬盘驱动器或类似设备等其他设备不同。有没有办法判断驱动器是否是 SD 卡驱动器?
例如,列出所有可用文件系统根的 Java 方法是使用 listRoots()
方法,但它无法判断文件系统类型,例如外部、内部、操作系统驱动器或其他类型。
这在纯 Java 中是否可能?
注意:
我不要求检测 Android 手机 SD 卡,因为这些是搜索我的问题时的结果。
最佳答案
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 卡
、NAS
、C:
和 D:
驱动器。打印以下内容:
SANDISK (E:)
SANDISK
E:\
正如预期,仅返回一个结果,因为由于 USB 读卡器
插入我的笔记本电脑,SD 卡
被视为 USB
.
关于java - 检测/验证 SD 卡驱动器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34676452/