PATH
path.join()
- path.join():用于链接路径,并且会自动转换当前系统路径的分隔符,路径为无或空时,得到的结果是’.’,只有传入 __dirname 的时候,才能得到绝对路径
path.join() # .
path.join('') # .
path.join(__dirname) # /home/wudandong
path.join('a') # a
path.join('a','b') # a/b
path.join('./a') # a
path.join('/a') # /a
path.join('a','/b') # a/b
path.join('../') # ../
path.join('../a') # ../a
path.join('../a','b') # ../a/b
path.join('a','../b') # b
path.join('c','b','../a') # c/a
path.join(__dirname,'a') # /home/wudandong/a
path.join(__dirname,'../') # /home
path.resolve()
path.resolve()
:也是用于链接路径,但却和 path.join()
方法却很多不同,而且 path.resolve()
方法本身就自带一个 to
的绝对路径参数,也会自动转换分隔符,在某些场景用起来也方便很多
path.resolve() # /home/wudandong
path.resolve(__dirname) # /home/wudandong
path.resolve('a') # /home/wudandong/a
path.resolve('a','b') # /home/wudandong/a/b
path.resolve('./a') # /home/wudandong/a
path.resolve('a','./b') # /home/wudandong/a/b
path.resolve('/a') # /a
path.resolve('/a','b','c') # /a/b/c
path.resolve('a','/b','c') # /b/c 碰到/就忽略前面的路径
path.resolve('../') # /home
path.resolve('../a') # /home/a
path.resolve('a','../b') # /home/wudandong/b
path.resolve(__dirname,'a') # /home/wudandong/a
path.resolve('a','b',__dirname) # /home/wudandong
path.resolve(__dirname,'/a','b') # /a/b 碰到/a访问/a
path.resolve('a','/b',__dirname) # /home/wudandong , __dirname 在后,访问 __dirname
__dirname &__filename & process.cwd()
- __dirname: 是 node 的一个全局变量,获得当前文件所在目录的完整目录名,搭配 path 一起使用
- __filename: 获得当前执行文件的带有完整绝对路径的文件名
- process.cwd(): 是当前Node.js进程执行时的文件夹地址:
工作目录
,保证了文件在不同的目录下执行时,路径始终不变
path.dirname() & path.basename()
path.dirname()
方法会返回 path 的目录名
path.basename()
方法会返回 path的最后一部分
path.dirname('a/b/c') # a/b
path.basename('a/b/c') # c
path.extname()