Chinaunix首页 | 论坛 | 博客
  • 博客访问: 347101
  • 博文数量: 26
  • 博客积分: 169
  • 博客等级: 入伍新兵
  • 技术积分: 516
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-29 23:53
个人简介

爱工作,爱生活,更爱自由的程序媛,坚持最初的梦想,做最好的自己!

文章分类

全部博文(26)

文章存档

2014年(16)

2013年(3)

2012年(7)

我的朋友

分类: Android平台

2013-03-07 10:33:54

这几天为了扫描Scard卡所有的图片的事非常纠结,我原本以为这是一件很简单的事,但是我发现我错了。网上也没有完整的代码,只是零零碎碎的能扫描单个文件的代码。在今天代码调试通过之后,我觉得我有必要和大家分享一下。
1、由于是手机端的扫描,所以最好开个线程。在子线程中把扫描工作完成这是非常重要的,那么现在开始来看这个类吧!这个代码可以扫描出SCARD卡上所有的文件。

点击(此处)折叠或打开

  1. public class GetFilePathThread implements Runnable {
  2.         
  3.         public String pathString;
  4.         public List<String> listpath;
  5.         public GetFilePathThread(String path,List<String> list) {
  6.             this.pathString=path;
  7.             this.listpath=list;
  8.         }
  9.         
  10.         public void run() {

  11.             File file=new File(pathString);
  12.             if (file.isDirectory()) {
  13.                 File fs[]=file.listFiles();
  14.                 if(fs!=null) {
  15.                     System.out.println("目录里面包含的所有文件个数--->"+fs.length);
  16.                     if (fs.length>0) {
  17.                         for(int i=0;i<fs.length;i++) {
  18.                             if (fs[i].isFile()) {
  19.                                 listpath.add(fs[i].getAbsolutePath());
  20.                                 System.out.println("文件的绝对路径---->"+fs[i].getAbsolutePath());
  21.                             } else if (fs[i].isDirectory()) {
  22.                                 System.out.println("目录的绝对路径---->"+fs[i].getAbsolutePath()+"/");
  23.                                 new Thread(new GetFilePathThread(fs[i].getAbsolutePath()+"/", listpath)).start();
  24.                              //    getFilePath(fs[i].getAbsolutePath(),listpath);
  25.                                  
  26.                             }
  27.                         }
  28.                     }
  29.                 }
  30.             }
  31.         }
  32.     }
2、扫描出我们所需要的图片文件,当然在这之前要先定义
private List list=new ArrayList();

点击(此处)折叠或打开

  1. StringBuffer buffer=new StringBuffer();
  2.                 for(int i=0;i<list.size();i++) {
  3.                     if (list.get(i).endsWith(".jpg")) {
  4.                         buffer.append(list.get(i).toString()+"n");
  5.                     }
  6.                 }
3、记得加入关于Scard卡的读写权限,这个很重要。至于开启线程的事,我就不多说了 。
总结:这次代码在小地方纠结了很久,真的很不应该,主要问题是两个,一个是怎么遍历文件夹下的子文件,第二,怎么获取添加进去的文件路径;
希望这些能对大家有用!




阅读(5322) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~