node相关模块文档
prmose Api会提示时实验阶段,但不影响我们使用
var fs = require('fs').promises;
// 读取文件
const getFile = (url, chart="utf-8") => {
return fs.readFile(url, chart);
}
module.exports.getFile = getFile;
// 写入文件
const setFile = (url, data) => {
return fs.writeFile(url, data);
}
module.exports.setFile = setFile;
// 文件详情
const getDetailFile = (url) => {
return new Promise((resolve,reject)=>{
fs.stat(url).then(stat => {
let isFile = stat.isFile(); // 是否为文件
let isDirectory = stat.isDirectory(); // 是否为文件夹
resolve({...stat,isFile,isDirectory});
}).catch(err => {
reject(err);
})
})
}
module.exports.getDetailFile = getDetailFile;
// 删除文件
const removeFile = (url) => {
return fs.unlink(url)
}
module.exports.removeFile = removeFile;
// 获取当前路径下的文件和文件夹列表
// isFilter 是否过滤隐藏文件
// arr 需要过滤的关键词
const getFileList = (path,isFilter=true,arr=[]) => {
return new Promise((resolve,reject) => {
fs.readdir(path).then(res => {
let data = res;
if (isFilter) {
data = data.filter(item=> {
return item.indexOf('.') != 0;
})
}
if (arr.length>0) {
data.filter(item => {
return !arr.includes(item);
})
}
resolve(data)
}).catch(err => {
reject(err);
})
})
}
module.exports.getFileList = getFileList;