以大疆图片存储路径为例,获取该路径下的所有图片:
javascript
let that = this
// Android微博图片路径
// const targetDirPath = '/storage/emulated/0/Pictures/Weibo/';
// Android大疆图片存储路径
const targetDirPath = '/storage/emulated/0/DCIM/DJI Album/';
// 步骤1:解析文件夹路径,获取DirectoryEntry对象
plus.io.resolveLocalFileSystemURL(targetDirPath, function(dirEntry) {
// 步骤2:获取文件夹读取器DirectoryReader
const dirReader = dirEntry.createReader();
// 步骤3:读取文件夹中的所有文件/子文件夹
dirReader.readEntries(function(entries) {
// entries是数组,包含当前文件夹下的FileEntry(文件)和DirectoryEntry(子文件夹)
const imageFiles = []; // 存储筛选后的图片文件
// 步骤4:遍历并筛选图片文件
entries.forEach(function(entry) { //所有的图片
// 只处理文件(排除子文件夹)
if (entry.isFile) {
const fileName = entry.name.toLowerCase(); // 转为小写,兼容后缀大小写
// 筛选图片格式(png/jpg/jpeg)
if (fileName.endsWith('.png') || fileName.endsWith('.jpg') ||
fileName.endsWith('.jpeg')) {
let imgPath = entry.fullPath
imageFiles.push({
name: entry.name,
path: entry.fullPath, // 文件绝对路径
url: entry.toURL(), // 文件本地URL(可用于预览)
})
}
}
});
// 最终得到的图片文件列表
console.log('文件夹下的图片列表:', imageFiles);
}, function(err) {
console.error('读取文件夹内容失败:', err);
});
}, function(err) {
console.error('解析文件夹路径失败:', err);
// 失败原因:路径不存在、无权限、iOS沙盒限制等
});
打印出来的imageFiles如下:
