android获取内存卡循环某个目录下所有图片的路径地址加入到list
时间: 2023-08-01 17:10:47 浏览: 39
以下是获取内存卡循环某个目录下所有图片的路径地址加入到list的示例代码:
```java
public List<String> getAllImagePath(String dirPath) {
List<String> imagePathList = new ArrayList<>();
File dir = new File(dirPath);
if (dir.exists() && dir.isDirectory()) {
File[] files = dir.listFiles();
if (files != null && files.length > 0) {
for (File file : files) {
if (file.isFile() && isImageFile(file)) {
imagePathList.add(file.getPath());
} else if (file.isDirectory()) {
imagePathList.addAll(getAllImagePath(file.getPath()));
}
}
}
}
return imagePathList;
}
private boolean isImageFile(File file) {
String fileName = file.getName();
int dotIndex = fileName.lastIndexOf(".");
if (dotIndex >= 0) {
String fileExt = fileName.substring(dotIndex + 1).toLowerCase();
return fileExt.equals("jpg") || fileExt.equals("jpeg") || fileExt.equals("png") || fileExt.equals("bmp") || fileExt.equals("gif");
}
return false;
}
```
调用方法:
```java
List<String> imagePathList = getAllImagePath(Environment.getExternalStorageDirectory().getAbsolutePath() + "/your_dir_path");
```
其中,`getAllImagePath()` 方法会循环遍历目录下的所有文件,如果是图片文件则加入到 `imagePathList` 列表中;如果是目录则递归调用 `getAllImagePath()` 方法来获取该目录下所有图片文件的路径。`isImageFile()` 方法用于判断文件是否是图片文件。
需要注意的是,为了避免 `java.lang.NullPointerException` 异常,需要确保在读取 SD 卡之前已经获取了读写 SD 卡的权限。