写nodejs,变量脚本所在目录及子目录,获取所有类型文件,并统计数量,将结果输出到1,txt
时间: 2024-02-06 08:02:04 浏览: 65
好的,可以使用Node.js自带的`__dirname`变量获取当前脚本所在的目录,然后调用之前实现的遍历目录及子目录、获取文件类型和统计数量的函数,最后将结果输出到文件中。具体代码如下:
```javascript
const fs = require('fs');
const path = require('path');
function countFilesByType(dirPath) {
const result = {};
function traverseDir(dirPath) {
fs.readdirSync(dirPath).forEach(file => {
const filePath = path.join(dirPath, file);
// 判断是否为文件夹
if (fs.statSync(filePath).isDirectory()) {
traverseDir(filePath);
} else {
// 获取文件类型
const ext = path.extname(filePath).toLowerCase();
// 统计数量
if (result[ext]) {
result[ext]++;
} else {
result[ext] = 1;
}
}
});
}
traverseDir(dirPath);
return result;
}
// 获取当前脚本所在目录,并统计所有类型文件数量
const scriptDir = __dirname;
const countResult = countFilesByType(scriptDir);
// 将结果输出到文件中
const outputFilePath = path.join(scriptDir, '1.txt');
fs.writeFile(outputFilePath, JSON.stringify(countResult), err => {
if (err) {
console.error('写入文件失败', err);
} else {
console.log(`结果已保存到${outputFilePath}`);
}
});
```
在上面的代码中,我们首先使用`__dirname`变量获取当前脚本所在的目录,然后调用之前实现的遍历目录及子目录、获取文件类型和统计数量的函数,获取所有类型文件的数量。最后将结果输出到文件中,文件名为`1.txt`,如果该文件已经存在,将会被覆盖。
你可以将上面的代码保存为一个`.js`文件,然后在命令行中运行`node`命令来执行该文件,比如:
```
node countFiles.js
```
注意要保证当前目录下有写权限以便将结果保存到文件中。
阅读全文