直接贴代码,希望能给一些人灵感(.vue文件),
getMediaFiles () {//获取本地文件
let environment = plus.android.importClass("android.os.Environment");
let sdRoot = environment.getExternalStorageDirectory();//获取手机根目录
this.filePath = {image:[],video:[]};//过滤到的文件信息
this.mapFile(sdRoot);//递归过滤
console.log('this.filePath :>> ', this.filePath);//过滤结果
},
mapFile (path) {// 遍历目录下的所有文件和文件夹
let fileObj = plus.android.importClass("java.io.File");
let files = plus.android.invoke(path,"listFiles");
let len = files.length;
for(let i=0; i<len; i++){
let file = files[i];
// 过滤隐藏文件以及名字叫“Android”的文件夹(自己可以自定义过滤)
if(!plus.android.invoke(file,"isHidden") && plus.android.invoke(file,"getName")!='Android'){// 非隐藏文件执行操作
if(plus.android.invoke(file,"isDirectory")){// 判断是文件还是文件夹
this.mapFile(new fileObj(plus.android.invoke(file,"getAbsolutePath")));//文件夹递归
} else {
let size = this.getFileSize(file)
if (plus.android.invoke(file,"getName").endsWith('.jpg')||plus.android.invoke(file,"getName").endsWith('.png')) {//获取jpg、png文件(可自定义修改)
console.log('file name :>> ', plus.android.invoke(file,"getName"),'; size :>> ', size);
this.filePath.image.push({
path:plus.android.invoke(file,"getAbsolutePath"),//文件绝对路径
name:plus.android.invoke(file,"getName"),//文件名称,包含后缀
size:size,//文件大小
lastModified:plus.android.invoke(file,"lastModified")//文件最后修改时间戳
})
} else if (plus.android.invoke(file,"getName").endsWith('.mp4')||plus.android.invoke(file,"getName").endsWith('.mp3')) {//获取mp3、mp4文件(可自定义修改)
console.log('file name :>> ', plus.android.invoke(file,"getName"),'; size :>> ', size);
this.filePath.video.push({
path:plus.android.invoke(file,"getAbsolutePath"),
name:plus.android.invoke(file,"getName"),
size:size,
lastModified:plus.android.invoke(file,"lastModified")
})
}
}
}
}
},
getFileSize (file) {// 读文件大小
let FileInputStream = plus.android.importClass("java.io.FileInputStream");
let fileSize = new FileInputStream(file);
let size = fileSize.available();
// 单位转换
let fileSizeString;
if(size == 0){
fileSizeString = "0B";
}else if(size < 1024){
fileSizeString = size + "B";
}else if(size < 1048576){
fileSizeString = (size/1024).toFixed(2) + "KB";
}else if (size < 1073741824){
fileSizeString = (size/1048576).toFixed(2) + "MB";
}else{
fileSizeString = (size/1073741824).toFixed(2) + "GB";
}
return fileSizeString
},
1 个评论
要回复文章请先登录或注册
湖东呀 (作者)