您的位置:首页 > 移动开发 > Android开发

Android 扫描Scard卡所有的图片

2015-08-12 11:05 483 查看
这几天为了扫描Scard卡所有的图片的事非常纠结,我原本以为这是一件很简单的事,但是我发现我错了。网上也没有完整的代码,只是零零碎碎的能扫描单个文件的代码。在今天代码调试通过之后,我觉得我有必要和大家分享一下。

1、由于是手机端的扫描,所以最好开个线程。在子线程中把扫描工作完成这是非常重要的,那么现在开始来看这个类吧!这个代码可以扫描出SCARD卡上所有的文件。

public
class GetFilePathThread implements
Runnable {

public
String pathString;

public
List<String> listpath;

public GetFilePathThread(String path,List<String>
list)
{

this.pathString=path;

this.listpath=list;

}

public
void run()
{

File
file=new
File(pathString);

if
(file.isDirectory())
{

File fs[]=file.listFiles();

if(fs!=null)
{

System.out.println("目录里面包含的所有文件个数--->"+fs.length);

if
(fs.length>0)
{

for(int i=0;i<fs.length;i++)
{

if
(fs[i].isFile())
{

listpath.add(fs[i].getAbsolutePath());

System.out.println("文件的绝对路径---->"+fs[i].getAbsolutePath());

}
else if (fs[i].isDirectory())
{

System.out.println("目录的绝对路径---->"+fs[i].getAbsolutePath()+"/");

new
Thread(new GetFilePathThread(fs[i].getAbsolutePath()+"/",
listpath)).start();

// getFilePath(fs[i].getAbsolutePath(),listpath);

}

}

}

}

}

}

}

2、扫描出我们所需要的图片文件,当然在这之前要先定义

private List list=new ArrayList();

StringBuffer
buffer=new
StringBuffer();

for(int i=0;i<list.size();i++)
{

if
(list.get(i).endsWith(".jpg"))
{

buffer.append(list.get(i).toString()+"n");

}

}

3、记得加入关于Scard卡的读写权限,这个很重要。至于开启线程的事,我就不多说了 。

总结:这次代码在小地方纠结了很久,真的很不应该,主要问题是两个,一个是怎么遍历文件夹下的子文件,第二,怎么获取添加进去的文件路径;

希望这些能对大家有用!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: