题目:开启一次性定时器,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", " ")
}