首先写一个方法
//递归的方式 //别忘记开启读取sd卡的权限
public void froDir(File dir) { //获得所有文件(这里面包括了文件夹和文件) File[] files = dir.listFiles(); for (File file : files) { //增强for循环来打印文件路径 if (file.isDirectory()) { froDir(file); } else { //打印文件路径 String s = file.getAbsolutePath().toLowerCase(); if (s.endsWith(".jpg")){ Log.e("MyClass", s); } } } }
当我们要用到这个方法的时候只需要给给一个File就可以了,如下图所示
File storageDirectory = Environment.getExternalStorageDirectory(); froDir(storageDirectory);
这里需要注意的是这个storageDirectory其实是一个默认的目录就是根目录,当我们通过log打印出来这个根目录的时候,这个字符串是/storage/emulated/0
这样我们就相当于遍历了手机内部内存卡里面的所有数据
那我们想遍历一个我们知道的文件路径的文件夹该怎么办呢,,如下图所示
File file=new File("/storage/extSdCard"); froDir(file);通过这样的方式,,就可以遍历指定的目录的文件夹下面所有的以。jpg结尾的数据