分享下安卓下目录和文件读取
注意需要安装排序库natsort.min.js,和 vm.$u.date 时间函数,可以用自己的函数代替
// #ifdef APP-PLUS
//只能用于安卓 导入java类
let File = plus.android.importClass("java.io.File");
let BufferedReader = plus.android.importClass("java.io.BufferedReader");
let FileReader = plus.android.importClass("java.io.FileReader");
let FileWriter = plus.android.importClass("java.io.FileWriter");
// 安卓11及一下可以在任意地方创建文件夹 /sdcard/自己的文件夹/1.txt
// 安卓11(百度安卓目录限制) /storage/emulated/0/Download/自己的文件夹/1.txt
//新建文件 newFiles("/sdcard/修止符/配置.json")
let newFiles = (name) => {
let directory = new File(name);
if (!directory.exists()) {
return directory.mkdirs(); //不存在创建目录
}
return false;
};
//读取txt文件 readFile ("/sdcard/修止符/配置.json")
let readFile = (fileName) => {
let readFr = new File(fileName);
try {
let reader = new BufferedReader(new FileReader(readFr));
let txt;
let retxt = '';
while (true) {
txt = reader.readLine(); //读取文件
if (txt == null) {
break;
}
retxt = retxt + '\r\n' + txt;
}
return retxt;
} catch (e) {
console.log(e)
return '';
}
};
//写文件 whiteFile("/sdcard/修止符/配置.json",{"主键":"值"})
let whiteFile = (fileName, res) => {
res = res ? JSON.stringify(res) : ''; //对象转换为json文本
try {
//不加根目录创建文件(即用相对地址)的话directory.exists()这个判断一值都是false
let n = fileName.lastIndexOf("/");
if (n != -1) {
let fileDirs = fileName.substring(0, n);
let directory = new File(fileDirs);
if (!directory.exists()) {
directory.mkdirs(); //不存在创建目录
}
}
let file = new File(fileName);
if (!file.exists()) {
file.createNewFile(); //创建文件
}
let fos = new FileWriter(fileName, false);
fos.write(res);
fos.close();
return true;
} catch (e) {
console.log(e);
return false;
}
return false;
};
//删除文件或文件夹 deleteFile ("/sdcard/修止符/待删除/配置.json")
let deleteFile = (fileName) => {
console.log(fileName);
let file = new File(fileName.replace('//', '/'));
if (file.isFile() && file.exists()) {
return file.delete();
} else if (file.isDirectory()) {
let flag = true;
let files = file.listFiles();
let lenI = files.length
for (let i = 0; i < lenI; i++) {
//删除子目录和文件
flag = deleteFile(files[i].getAbsolutePath());
if (!flag) break;
}
if (!flag) return false;
//删除当前空目录
return file.delete();
}
};
//移动文件 moveFile ("/sdcard/修止符/待删除/配置.json","/sdcard/修止符/配置.json")
let moveFile = (oldfile, newfile) => {
let n = newfile.lastIndexOf("/");
if (n != -1) {
let fileDirs = newfile.substring(0, n);
let directory = new File(fileDirs);
if (!directory.exists()) {
directory.mkdirs(); //不存在创建目录
}
}
let file = new File(oldfile);
let nfile = new File(newfile);
return file.renameTo(nfile);
};
//读取目录 readFileList ("/sdcard/修止符/") 注意需要安装排序库natsort.min.js, vm.$u.date 时间函数
let readFileList = (fileName) => {
let directory;
let path = vm.vuex_xzfdir;
let empty = vm.$u.test.isEmpty(fileName)
if (empty) {
directory = new File(vm.vuex_xzfdir);
} else {
path = fileName;
directory = new File(path);
}
if (!directory.exists()) {
directory.mkdirs();
}
let files = directory.listFiles();
//对文件和文件夹进行分类
let lenI = files.length
let folderArr = [];
let fileArr = [];
for (let i = 0; i < lenI; ++i) {
if (files[i].isFile()) {
fileArr.push({
id: i,
show: false,
icon: 'file-text',
path: path,
fileName: files[i].getName(),
CreationTime: vm.$u.date(new Date(files[i].lastModified()), 'yyyy年mm月dd日 hh时MM分ss秒')
});
} else {
folderArr.push({
id: i,
show: false,
icon: 'list-dot',
path: path,
fileName: files[i].getName(),
CreationTime: vm.$u.date(new Date(files[i].lastModified()), 'yyyy年mm月dd日 hh时MM分ss秒')
});
}
}
//对文件进行排序 需要安装排序库natsort.min.js
let sorter = natsort({
desc: vm.vuex_desc
});
fileArr.sort((a, b) => {
return sorter(a.fileName, b.fileName);
});
folderArr.sort((a, b) => {
return sorter(a.fileName, b.fileName);
})
let resultArr = folderArr.concat(fileArr);
return resultArr;
}
// #endif
0 个评论
要回复文章请先登录或注册