node utils

2021/12/29 22:37:29

本文主要是介绍node utils,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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
}


这篇关于node utils的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程