我一直在努力:
- 检测到实时安装的 U 盘
- 阅读它的文件。
使用 usb4java,我能够完成第 1 部分。但是 usb4Java 返回设备,我不知道如何访问设备的文件。
这是允许检测的代码(您可以在以下位置找到完整示例:HotPlug example)
public int processEvent(Context context, Device device, int event,
Object userData) {
DeviceDescriptor descriptor = new DeviceDescriptor();
int result = LibUsb.getDeviceDescriptor(device, descriptor);
if (result != LibUsb.SUCCESS) {
throw new LibUsbException("Unable to read device descriptor",
result);
}
System.out.format("%s: %04x:%04x%n",
event == LibUsb.HOTPLUG_EVENT_DEVICE_ARRIVED ? "Connected" :
"Disconnected",
descriptor.idVendor(), descriptor.idProduct());
return 0;
}
最佳答案
您可以从 java 调用 linux shell 命令。您想获取有关 USB 上文件的信息,因此必须挂载它,否则将无法轻松访问文件系统结构。如果它是自动挂载的,您可以通过 java 查看文件系统,即通过
Process p = Runtime.getRuntime().exec("ls/media/home/USB_mass_storage_name");
其中 /media/home/USB_mass_storage_name
是挂载点
如果未安装,则必须从 java ( How to execute bash command with sudo privileges in Java? ) 安装 USB
在Running system commands in Java applications是关于此的更多信息,也是一种将信息从 linux 命令输出读回 java 的方法
关于java - 检测插入的 usb 并使用 java 在 linux 中读取其文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44746946/