定时器创建和删除文件

yuanxl 1年前 ⋅ 739 阅读

题目:开启一次性定时器,3秒以后创建1.txt~10.txt,共10个文件,文件中写入一个数字;10秒钟以后删除这组文件。

答案:

const fs = require('fs');
//定义存放和要删除的文件的文件夹
var path = "./tmp/";
//创建文件夹
fs.mkdir(path, function (error) {});
console.info("程序开始时间:", getNowTime());
//三秒后创建文件并写入数字
setTimeout(createFile, 3000);
//十秒后删除文件
setTimeout(deleteFile, 10000);

/**
 * 创建文件
 */
function createFile() {
    for (let i = 1; i <= 10; i++) {
        fs.writeFile(path + i + ".txt", "" + Math.floor(Math.random() * 10), function (err) {})
    }
    console.info("文件创建结束:", getNowTime())
};

/**
 * 删除文件
 * 本来想根据path直接删除整个目录和文件,结果范闲js没有相关api
 * 所以还是只能单文件删除
 */
function deleteFile() {
    let files = [];
    if (fs.existsSync(path)) {
        files = fs.readdirSync(path);
        //先删除文件,再删除文件夹。
        files.forEach((file, index) => {
            let curPath = path + "/" + file;
            fs.unlinkSync(curPath); //删除文件
        });
        fs.rmdirSync(path);  // 删除文件夹自身
        console.info("文件删除完成时间:", getNowTime())
    }
}

/**
 * 获取时间,用于打印日志
 * @returns {string}
 */
function getNowTime() {
    return new Date(new Date().setHours(new Date().getHours() + 8)).toISOString().replace("Z", " ").replace("T", " ")
}



全部评论: 0

    我有话说: