黑马程序员技术交流社区
标题:
File类怎么动态加载
[打印本页]
作者:
唐晓
时间:
2013-1-23 08:12
标题:
File类怎么动态加载
本帖最后由 唐晓 于 2013-1-23 20:34 编辑
需求:比如说你插一个U盘,你可以通过指定出来一个路径得到这个U盘。
File dir = new File("H:\\");
File[] files = dir.listFiles();
for(File f : files)
{
System.out.println(f.getName);
}
复制代码
但是如果我要是插了2个U盘呢?有什么简便的提取方法能动态显示只要有U盘插入,直接打印U盘里的文件和文件夹。
作者:
焦健
时间:
2013-1-23 10:09
插入两个盘的花盘符不可能一样啊,如果你要自己制定路径可以通过args传值的方式,在内部判断路径是否存在。如果不想自己指定,通过接口监听进行获取路径,那就涉及到底层资源调用,我就就不懂了!
作者:
逍林游
时间:
2013-1-23 10:20
你说“能动态显示只要有U盘插入,直接打印U盘里的文件和文件夹”,我想你应该了解下java API中的u盘驱动类,当u盘驱动运行时,通过API动态获取····
作者:
唐晓
时间:
2013-1-23 16:13
一个读取U盘数据的的小程序
File[] roots = File.listRoots(); //获取当前硬盘分区
List list=new ArrayList();
for (int i = 0; i < roots.length; i++) {
list.add(roots[i]); //把硬盘分区添加到一个集合里
}
while(true){ //循环读取,当list数组的长度小于当前硬盘分区的长度,进行读取新添加的盘符的文件
boolean flag=true;
while(flag){
File[] usbroots = File.listRoots();
if(list.size()<usbroots.length){
File dir = new File(usbroots[usbroots.length-1].toString());
File[] files = dir.listFiles();
if(files.length>0){
for(File f : files)
{
System.out.println(usbroots[usbroots.length-1]+":"+f.getName());
}
list.add(usbroots[usbroots.length-1]);
flag=false;
}
}
}
}
复制代码
作者:
谢毅
时间:
2013-1-23 18:56
这个你得去下javax.usb这个候选扩展包,Java 平台一直都以其平台无关性自豪。虽然这种无关性有许多好处,但是它也使得编写与硬件交互的 Java 应用程序的过程变得相当复杂。Java 编程语言在设计上对硬件访问提供的支持很少,javax.usb这个包是IBM在2001开始的一个项目,不过现在好像被Java正式命名了。你可以把API也下下来,自己研究研究,顺带说一句,这已经不是基础的范畴了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2