nodejs文件操作中的相对路径问题

Node.js执行文件时的路径解析问题
本文探讨了在Node.js中使用`fs.readdirSync`时遇到的路径问题。作者发现,`node`命令执行文件时使用的相对路径是相对于命令执行的位置,而非当前执行文件的路径。通过示例代码和终端输出,作者验证了这一行为,并建议在操作文件系统时使用`__dirname`获取更可靠的绝对路径,以避免路径相关的问题。

首先看一下代码

//  我的路径是/code/Node.js/test.js

const fs = require('fs')
console.log(fs.readdirSync('./')) //然后我在这执行run code(下的一个插件)
//打印['Node.js']

这时候我就发现不对劲了 这时候的当前目录明明就是Node.js下面的目录啊 按道理应该打印test.js才对啊

后来我发现在终端里是这样的

 E:\Code>

于是我就怀疑难道这个node执行时候的相对路径是相对的这个路径?
于是我cd进去运行

E:\Code> cd Node.js
E:\Code\Node.js> node test.js
['test']

果然我猜的没错
用node执行文件时 使用的相对路径**是相对node命令执行时的相对路径 而不是相对于当前执行文件的相对路径 **所以啊 使用node执行文件操作时 相对路径不太可靠 不长点就还真发现不来这个东西 好在我脑子还行 哈哈哈哈

总结

操作文件系统时 可以配合__dirname 因为这获取当前执行文件的所在文件夹的绝对路径,就算你把他移动了执行时获取的绝对路径也会跟着变 比相对路径靠谱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值