const fs = require('fs')
/**
* 删除指定路径下的所有文件
*/
function emptyDir(path) {
const files = fs.readdirSync(path)
// 过滤不删除的文件
let noDelete = ['.git', 'README.md', 'pc.html']
files.forEach(file => {
if (!noDelete.includes(file)) {
const filePath = `${path}/${file}`;
const stats = fs.statSync(filePath);
if (stats.isDirectory()) {
emptyDir(filePath);
} else {
fs.unlink(filePath, () => {
});
console.log(`删除${file}文件成功`);
}
}
});
}
/**
* 删除指定路径下的所有空文件夹
*/
function rmEmptyDir(path, level = 0) {
const files = fs.readdirSync(path);
if (files.length > 0) {
let tempFile = 0;
files.forEach(file => {
tempFile++;
rmEmptyDir(`${path}/${file}`, 1);
});
if (tempFile === files.length && level !== 0) {
fs.rmdirSync(path);
}
} else {
level !== 0 && fs.rmdirSync(path);
}
}
/**
* 在复制目录前需要判断该目录是否存在,
* 不存在需要先创建目录
* @param src
* @param dst
* @param callback
*/
function exists(src, dst, callback) {
// 如果路径存在,则返回 true,否则返回 false。
if (fs.existsSync(dst)) {
callback(src, dst)
} else {
fs.mkdir(dst, function () {
callback(src, dst)
})
}
}
/**
* 判断数组中的元素是否包含此字符串
* @param arr
* @param obj
* @returns {boolean}
*/
function contains(arr, obj) {
let flag = false
arr.map((val) => {
if (obj.includes(val)) {
flag = true
}
})
return flag
}
module.exports = {
emptyDir,
rmEmptyDir,
exists,
contains
}