android扫描sdcard中的音视频及图片等文件

本文详细介绍了如何在Android应用中实现对SD卡文件的扫描功能,包括图片文件的识别和存储路径的获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

From:http://www.it165.net/pro/html/201304/5483.html

如题,现在的很多应用都有自动扫描sdcard文件的功能,例如天天动听等音乐播放器导入音乐的时候、还有一些阅读应用导入本地文本也有扫描功能。最近做一个练习,写到这个功能,只是简单的实现了扫描,并没有考虑手机内存等因素。

 

这里以扫描图片为例,扫描其它类型的文件,只需要换后缀名。
具体实现方法如下:

01. private List> l = new ArrayList>();
02. private HashMap hm;
03. //常见的图片格式
04. private String[] img = new String[] { ".jpg"".png"".gif"".bmp" };
05.  
06. private void checkFile(File file) {// 遍历文件,在这里是遍历sdcard
07. if (file.isDirectory()) {// 判断是否是文件夹
08. File[] files = file.listFiles();// 以该文件夹的子文件或文件夹生成一个数组
09. if (files != null) {// 如果文件夹不为空
10. for (int i = 0; i < files.length; i++) {
11. File f = files[i];
12. checkFile(f);// 递归调用
13. }
14. }
15. else if (file.isFile()) {// 判断是否是文件
16. int dot = file.getName().lastIndexOf(".");
17. if (dot > -1 && dot < file.getName().length()) {
18. String extriName = file.getName().substring(dot,
19. file.getName().length());// 得到文件的扩展名
20. if (extriName.equals(img[0]) || extriName.equals(img[1])
21. || extriName.equals(img[2]) || extriName.equals(img[3])) {// 判断是否是图片文件 www.it165.net
22. hm = new HashMap();
23. hm.put("name", file.getName());
24. hm.put("path", file.getPath());// 如果是图片,则得到文件名和路径,装入集合中
25. l.add(hm);
26. }
27. }
28. }
29. }

我把路径保存起来,以后方便建立Bitmap对象(BitmapFactory.decodeFile(path)方法)。
 
之前在网上看到,android系统启动的时候会自动扫描手机中的媒体文件,并把扫描的信息保存在某个文件中,而我们可以读取到这个文件的信息,具体请参看MediaStore类,通过这个类可以实现,这里就不做叙述。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值