node utils

 // 引入依赖

const fs = require('fs');

 // 删除指定路径下的所有文件

/**
 * 删除指定路径下的所有文件,但排除某些特定文件或文件夹。
 * @param {string} path - 需要清空文件的路径。
 */
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}文件成功`);
            }
        }
    });
}

 // 删除指定路径下的所有空文件夹

/**
 * 删除指定路径下的所有空文件夹。
 * @param {string} path - 需要清空文件夹的路径。
 * @param {number} level - 文件夹的深度,默认为0。
 */
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 {string} src - 原路径。
 * @param {string} dst - 目标路径。
 * @param {Function} callback - 回调函数。
 */
function exists(src, dst, callback) {
    if (fs.existsSync(dst)) {
        callback(src, dst);
    } else {
        fs.mkdir(dst, function () {
            callback(src, dst);
        });
    }
}

// 判断数组中的元素是否包含字符串

/**
 * 判断数组中的元素是否包含指定的字符串。
 * @param {Array} arr - 被检查的数组。
 * @param {string} 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
}
主要提供了文件和文件夹操作的一些基本功能,包括清空指定目录下的文件、删除空文件夹、检查路径是否存在以及检查数组中是否包含特定字符串等功能。

posted on 2021-12-29 22:22  完美前端  阅读(138)  评论(0)    收藏  举报

导航