NodeJS获取当前目录和运行文件所在目录

本文介绍在Node.js中如何使用path模块解析文件路径,包括__dirname、resolve和process.cwd的区别及应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新建文件 /Desktop/demo.js
在 /workspace 路径下执行结果

const { resolve } = require('path')

// 返回运行文件所在的目录
console.log('__dirname : ' + __dirname)
// __dirname : /Desktop

// 当前命令所在的目录
console.log('resolve   : ' + resolve('./'))
// resolve   : /workspace

// 当前命令所在的目录
console.log('cwd       : ' + process.cwd())
// cwd       : /workspace

好的,可以使用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 ``` 注意要保证当前目录下有写权限以便将结果保存到文件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值