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卡的读写权限,这个很重要。至于开启线程的事,我就不多说了 。
总结:这次代码在小地方纠结了很久,真的很不应该,主要问题是两个,一个是怎么遍历文件夹下的子文件,第二,怎么获取添加进去的文件路径;
希望这些能对大家有用!
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卡的读写权限,这个很重要。至于开启线程的事,我就不多说了 。
总结:这次代码在小地方纠结了很久,真的很不应该,主要问题是两个,一个是怎么遍历文件夹下的子文件,第二,怎么获取添加进去的文件路径;
希望这些能对大家有用!
相关文章推荐
- AndroidStudio 快捷键大全
- Android动态改变控件的位置
- Android onActivityResult获取返回值的用法
- Android 事件分发机制解析之View的事件分发
- Android实现多个倒计时优化与源码分析
- 解决“com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536”问题
- AndroidUnusedResources,清理不需要的资源
- android中dip、dp、px、sp和屏幕密度
- android 5.0 下载编译
- Android 获取系统联系人并排序
- Android开机自启动service,并不启动activity
- android图片缓存之内存缓存技术LruCache,软引用
- Android动画详解
- android与JS交互
- android 关于view的onTouch和onClick同时触发解决方案
- android 传感器必知必会(下)
- 千锋扣丁学堂 七夕活动等你来参与
- Android实现两个ScrollView互相联动,同步滚动的效果
- Android实现两个ScrollView互相联动,同步滚动的效果
- Android(Lollipop/5.0) Material Design(七) 自定义动画