用JAVA 如何写一个检测是否有U盘插入和拨出的程序

时间:2022-12-19 16:08:27
RT 有没有人写过类似的程序,给点思路,最好能记录下从电脑中拷了什么文件到U盘中。

27 个解决方案

#1


这个貌似不在java的范畴吧

#2


也许有些难度吧

#3


以前有人问过吧 

jUSB API
JSR-80 API (javax.usb)

用以上2个操作吧

#4


可能分配的盘符,不外乎那么20来个字母。而且,一般都是依序分配的。 

取巧点的方法是:U盘的盘符是原系统中不存在的盘符(如果不考虑增减硬盘的情况),所以,在U盘未插前记录一下当前盘符,然后在需要检测的程序段里去读一下记录盘符之后的盘符是否有文件,就知道是否存在U盘了。 

#5


不懂,期待高手~~~

#6


引用 4 楼 liubowin 的回复:
可能分配的盘符,不外乎那么20来个字母。而且,一般都是依序分配的。 

取巧点的方法是:U盘的盘符是原系统中不存在的盘符(如果不考虑增减硬盘的情况),所以,在U盘未插前记录一下当前盘符,然后在需要检测的程序段里去读一下记录盘符之后的盘符是否有文件,就知道是否存在U盘了。


这种方法太猥琐

#7


该回复于2010-12-28 16:46:35被版主删除

#8


按照3楼的方法,我用了JSR-80 API (javax.usb)这个包写了如下代码:
package jusb;
import javax.usb.*;

import java.util.List;
public class TraverseUSB {

/**
 * @param args
 * @throws UsbException 
 * @throws SecurityException 
 */
public static void main(String[] args) throws SecurityException, UsbException {
UsbServices services  = UsbHostManager.getUsbServices();
UsbHub rootHub = services.getRootUsbHub();
}

public static void traverse(UsbDevice device){
if(device.isUsbHub()){
List attachedDevices = ((UsbHub) device).getAttachedUsbDevices();
for (int i=0; i<attachedDevices.size(); i++){
traverse((UsbDevice)attachedDevices.get(i));
}
}else{
System.out.print("This is a USB function, not a hub");
}
}


}
这个程序递归地遍历 USB 系统上的所有 USB hub 并找出连接到主机计算机上的所有 USB 设备
为什么总是报错,错误是
Exception in thread "main" javax.usb.UsbException: Properties file javax.usb.properties not found.

#9


javax.usb.properties 所在的目录加到classpath。

#10


我在myEclipse中已经导入了jsr80包,javax.usb.properties不是应该在包里嘛?但是我没有找到,会不是缺少文件呀?

#11


楼主写好后发我一份,我也需要谢谢450511278@qq.com

#12


期待哪位高手给出正确答案。。。。

#13


哇  不懂,期待高手~~~

#14


有点困难吧?

#15


又查了下资料,好像jsr80只能在Linux 平台中应用,装个linux虚拟机再试试吧。

#16


期待中,期待楼主整个完整的,楼主写好后发我一份,我也需要谢谢419051424@qq.com

#17


http://hi.baidu.com/wzwahl36/blog/item/b37f90d001ceee9da1ec9c5e.html

我昨天刚做了一个,发到blog了!
可以see see!

#18


该回复于2011-01-06 16:10:31被版主删除

#19


引用 17 楼 wzwahl36 的回复:
http://hi.baidu.com/wzwahl36/blog/item/b37f90d001ceee9da1ec9c5e.html

我昨天刚做了一个,发到blog了!
可以see see!

看了看,还不错。。。。

#20


引用 17 楼 wzwahl36 的回复:
http://hi.baidu.com/wzwahl36/blog/item/b37f90d001ceee9da1ec9c5e.html

我昨天刚做了一个,发到blog了!
可以see see!

程序写的不错,但是不家点小问题,不过还没达到我想要的要求。
我先研究下,谢谢

#21


该回复于2011-01-07 16:14:43被版主删除

#22


该回复于2011-01-07 16:19:27被版主删除

#23


该回复于2011-01-07 17:11:57被版主删除

#24


该回复于2011-01-07 16:59:01被版主删除

#25


该回复于2011-01-08 09:11:11被版主删除

#26


引用 20 楼 church88 的回复:
引用 17 楼 wzwahl36 的回复:

http://hi.baidu.com/wzwahl36/blog/item/b37f90d001ceee9da1ec9c5e.html

我昨天刚做了一个,发到blog了!
可以see see!

程序写的不错,但是不家点小问题,不过还没达到我想要的要求。
我先研究下,谢谢



有什么其他需求和问题,说一说啊,邮箱联系我吧wzwahl36@qq.com

#27


该回复于2011-01-15 08:50:11被版主删除

#1


这个貌似不在java的范畴吧

#2


也许有些难度吧

#3


以前有人问过吧 

jUSB API
JSR-80 API (javax.usb)

用以上2个操作吧

#4


可能分配的盘符,不外乎那么20来个字母。而且,一般都是依序分配的。 

取巧点的方法是:U盘的盘符是原系统中不存在的盘符(如果不考虑增减硬盘的情况),所以,在U盘未插前记录一下当前盘符,然后在需要检测的程序段里去读一下记录盘符之后的盘符是否有文件,就知道是否存在U盘了。 

#5


不懂,期待高手~~~

#6


引用 4 楼 liubowin 的回复:
可能分配的盘符,不外乎那么20来个字母。而且,一般都是依序分配的。 

取巧点的方法是:U盘的盘符是原系统中不存在的盘符(如果不考虑增减硬盘的情况),所以,在U盘未插前记录一下当前盘符,然后在需要检测的程序段里去读一下记录盘符之后的盘符是否有文件,就知道是否存在U盘了。


这种方法太猥琐

#7


该回复于2010-12-28 16:46:35被版主删除

#8


按照3楼的方法,我用了JSR-80 API (javax.usb)这个包写了如下代码:
package jusb;
import javax.usb.*;

import java.util.List;
public class TraverseUSB {

/**
 * @param args
 * @throws UsbException 
 * @throws SecurityException 
 */
public static void main(String[] args) throws SecurityException, UsbException {
UsbServices services  = UsbHostManager.getUsbServices();
UsbHub rootHub = services.getRootUsbHub();
}

public static void traverse(UsbDevice device){
if(device.isUsbHub()){
List attachedDevices = ((UsbHub) device).getAttachedUsbDevices();
for (int i=0; i<attachedDevices.size(); i++){
traverse((UsbDevice)attachedDevices.get(i));
}
}else{
System.out.print("This is a USB function, not a hub");
}
}


}
这个程序递归地遍历 USB 系统上的所有 USB hub 并找出连接到主机计算机上的所有 USB 设备
为什么总是报错,错误是
Exception in thread "main" javax.usb.UsbException: Properties file javax.usb.properties not found.

#9


javax.usb.properties 所在的目录加到classpath。

#10


我在myEclipse中已经导入了jsr80包,javax.usb.properties不是应该在包里嘛?但是我没有找到,会不是缺少文件呀?

#11


楼主写好后发我一份,我也需要谢谢450511278@qq.com

#12


期待哪位高手给出正确答案。。。。

#13


哇  不懂,期待高手~~~

#14


有点困难吧?

#15


又查了下资料,好像jsr80只能在Linux 平台中应用,装个linux虚拟机再试试吧。

#16


期待中,期待楼主整个完整的,楼主写好后发我一份,我也需要谢谢419051424@qq.com

#17


http://hi.baidu.com/wzwahl36/blog/item/b37f90d001ceee9da1ec9c5e.html

我昨天刚做了一个,发到blog了!
可以see see!

#18


该回复于2011-01-06 16:10:31被版主删除

#19


引用 17 楼 wzwahl36 的回复:
http://hi.baidu.com/wzwahl36/blog/item/b37f90d001ceee9da1ec9c5e.html

我昨天刚做了一个,发到blog了!
可以see see!

看了看,还不错。。。。

#20


引用 17 楼 wzwahl36 的回复:
http://hi.baidu.com/wzwahl36/blog/item/b37f90d001ceee9da1ec9c5e.html

我昨天刚做了一个,发到blog了!
可以see see!

程序写的不错,但是不家点小问题,不过还没达到我想要的要求。
我先研究下,谢谢

#21


该回复于2011-01-07 16:14:43被版主删除

#22


该回复于2011-01-07 16:19:27被版主删除

#23


该回复于2011-01-07 17:11:57被版主删除

#24


该回复于2011-01-07 16:59:01被版主删除

#25


该回复于2011-01-08 09:11:11被版主删除

#26


引用 20 楼 church88 的回复:
引用 17 楼 wzwahl36 的回复:

http://hi.baidu.com/wzwahl36/blog/item/b37f90d001ceee9da1ec9c5e.html

我昨天刚做了一个,发到blog了!
可以see see!

程序写的不错,但是不家点小问题,不过还没达到我想要的要求。
我先研究下,谢谢



有什么其他需求和问题,说一说啊,邮箱联系我吧wzwahl36@qq.com

#27


该回复于2011-01-15 08:50:11被版主删除