您的位置:首页 > 其它

遍历SD卡寻找自己想要的文件

2016-06-15 21:56 218 查看
今天来做一个小小的模块。这个我在做项目的时候发现还是很有用滴。那就是遍历SD卡寻找自己想要的文件,当然看你还有更高效的做法,这里我就例举一个比较传统的找文件方法。

大概的思路就是在SD卡上寻找文件,如果是目录就进行递归,知道是文件然后再去判断这个文件是否是我们想要的文件,就这样一直遍历。

因为涉及到使用外部存储所以AndroidManifest配置文件中要添加权限:



<uses-permissionandroid:name="android.permission.READ_EXTERNAL_STORAGE"/>



接下里来贴代码进行分析。



publicvoidgetFile(Stringpath) { Filefiles=newFile(path); File[]file=files.listFiles(); try { for(Filef:file) { if(f.isDirectory()) { getFile(f.getAbsolutePath()); }else { if(f.getPath().contains("lrc")) { lrcpaths.add(f.getPath()); } } } }catch(Exceptione) { Log.i("TAG",e.toString()); } }接下来来解析下带啊名,首先我们要传送一个SD卡的起始路径,接下来实在这个路径下进行遍历File的方法listFiles() 
listFiles()能够获取当前文件夹下的所有文件和文件夹

然后用for循环进行遍历,判断是否文件夹,如果是就递归,如果是文件者判断是否是你想要的文件,这里我是模拟寻找歌词文件。

如果是想要音频文件则:

privateString[]fomat=newString[]{"mp3","wav",......}; publicstaticbooleanisAudioFile(Stringpath) { for(Stringkey:fomat) { if(path.contains(key)) { returntrue; } } returnfalse; }[/code]
fomat字符串数组其实也就是过滤文件的作用。后面的。。。是表示音频文件的后缀名。(PS:寻找手机上的音频文件建议使用getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,null,null,null,null);)



然后在第一段程序中如果判断是文件就调用</span>path给的是文件的绝对路径。[/code]










以此类推,可以拓展出许多程序,这里大家如果是初学者看完后可以去动手实践下做个小程序。








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