在Node.js中,每隔10s,读取file文件夹里面的文件和目录,将其写入filename.txt文件中,2h覆盖一次怎么做
时间: 2024-10-08 20:21:03 浏览: 28
在Node.js中,你可以使用`fs`模块(File System)来读取文件和目录,结合`setInterval`函数创建一个定时任务,然后使用`writeFileSync`或`appendFileSync`将内容写入到指定的文件。为了每两小时覆盖一次,你需要设置两个定时器,一个用于常规读取并追加,另一个用于定时清空并写入整个文件。
以下是简单的示例代码:
```javascript
const fs = require('fs');
const path = require('path');
const moment = require('moment'); // 使用这个库来轻松处理日期和时间
// 定义目标文件路径
const fileFolder = 'file';
const outputFile = 'filename.txt';
// 每10秒读取和写入
const interval = 10 * 1000;
setInterval(() => {
const files = fs.readdirSync(fileFolder); // 读取文件夹内容
let content = '';
for (const file of files) {
// 这里假设所有读取到的都是字符串,如果有其他类型需要转换
content += `${file}\n`;
}
// 将内容追加到outputFile
fs.appendFileSync(outputFile, content);
}, interval);
// 每两小时清除并写入整个文件
const twoHoursLater = moment().add(2, 'hours').valueOf();
setInterval(() => {
if (moment().valueOf() >= twoHoursLater) {
// 清空现有内容
fs.writeFileSync(outputFile, '');
// 重新开始读取和追加
setInterval(() => {}, interval);
}
}, interval * 6); // 6是2小时(60分钟)内的循环次数
阅读全文