A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唐晓 中级黑马   /  2013-1-23 08:12  /  1403 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 唐晓 于 2013-1-23 20:34 编辑

需求:比如说你插一个U盘,你可以通过指定出来一个路径得到这个U盘。
  1. File dir = new File("H:\\");
  2.                 File[] files = dir.listFiles();
  3.                 for(File f : files)
  4.                 {
  5.                         System.out.println(f.getName);
  6.                 }
复制代码
但是如果我要是插了2个U盘呢?有什么简便的提取方法能动态显示只要有U盘插入,直接打印U盘里的文件和文件夹。

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
焦健 来自手机 高级黑马 2013-1-23 10:09:18
沙发
插入两个盘的花盘符不可能一样啊,如果你要自己制定路径可以通过args传值的方式,在内部判断路径是否存在。如果不想自己指定,通过接口监听进行获取路径,那就涉及到底层资源调用,我就就不懂了!来自: Android客户端
回复 使用道具 举报
你说“能动态显示只要有U盘插入,直接打印U盘里的文件和文件夹”,我想你应该了解下java API中的u盘驱动类,当u盘驱动运行时,通过API动态获取····
回复 使用道具 举报
一个读取U盘数据的的小程序
  1.                 File[] roots = File.listRoots(); //获取当前硬盘分区
  2.                 List list=new ArrayList();
  3.                 for (int i = 0; i < roots.length; i++) {
  4.                         list.add(roots[i]);   //把硬盘分区添加到一个集合里
  5.                 }
  6.                 while(true){       //循环读取,当list数组的长度小于当前硬盘分区的长度,进行读取新添加的盘符的文件
  7.                         boolean flag=true;
  8.                         while(flag){
  9.                         File[] usbroots = File.listRoots();
  10.                         if(list.size()<usbroots.length){   
  11.                                         File dir = new File(usbroots[usbroots.length-1].toString());
  12.                                         File[] files = dir.listFiles();
  13.                                         if(files.length>0){
  14.                                                 for(File f : files)
  15.                                                 {
  16.                                                         System.out.println(usbroots[usbroots.length-1]+":"+f.getName());
  17.                                                 }
  18.                                         list.add(usbroots[usbroots.length-1]);
  19.                                 flag=false;
  20.                                         }
  21.                                 }
  22.                         }
  23.                 }
复制代码

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1 赞一个!

查看全部评分

回复 使用道具 举报
这个你得去下javax.usb这个候选扩展包,Java 平台一直都以其平台无关性自豪。虽然这种无关性有许多好处,但是它也使得编写与硬件交互的 Java 应用程序的过程变得相当复杂。Java 编程语言在设计上对硬件访问提供的支持很少,javax.usb这个包是IBM在2001开始的一个项目,不过现在好像被Java正式命名了。你可以把API也下下来,自己研究研究,顺带说一句,这已经不是基础的范畴了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马