path.join()和path.resolve()的区别

现在写代码的时候有时候使用path.join(__dirname,‘dist‘)有时候用path.resolve(__dirname,‘dist‘),都是能拼接处来一个绝对路径,但是具体有什么区别呢?

一、path.join()方法

  path.join()方法是将多个参数字符串合并成一个路径字符串

  console.log(path.join(__dirname,‘a‘,‘b‘));   假如当前文件的路径是E:/node/1,那么拼接出来就是E:/node/1/a/b。

  console.log(path.join(__dirname,‘/a‘,‘/b‘,‘..‘));  路径开头的/不会影响拼接,..代表上一级文件,拼接出来的结果是:E:/node/1/a

  console.log(path.join(__dirname,‘a‘,{},‘b‘));   而且path.join()还会帮我们做路径字符串的校验,当字符串不合法时,会抛出错误:Path must be a string.

二、path.resolve()方法

  path.resolve()方法是以程序为根目录,作为起点,根据参数解析出一个绝对路径

  以应用程序为根目录

  普通字符串代表子目录

  /代表绝对路径根目录

  

  console.log(path.resolve());   得到应用程序启动文件的目录(得到当前执行文件绝对路径)   E:\zf\webpack\1\src

  console.log(path.resolve(‘a‘,‘/c‘));   E:/c  ,因为/斜杠代表根目录,所以得到的就是E:/c

  所以我们一般拼接的时候需要小心点使用/斜杠

  console.log(path.resolve(__dirname,‘img/so‘));  E:\zf\webpack\1\src\img\so   这个就是将文件路径拼接,并不管这个路径是否真实存在。

  console.log(path.resolve(‘wwwroot‘, ‘static_files/png/‘, ‘../gif/image.gif‘))    E:\zf\webpack\1\src\wwwroot\static_files\gif\image.gif

  这个是用当前应用程序启动文件绝对路径与后面的所有字符串拼接,因为最开始的字符串不是以/开头的。

  ..也是代表上一级目录。

原文地址:https://www.cnblogs.com/web-record/p/9907680.html

时间: 2024-10-08 17:39:57

path.join()和path.resolve()的区别的相关文章

path.join()与path.resolve()区别

1.path.resolve([...paths]) path.resolve() 方法会把一个路径或路径片段的序列解析为一个绝对路径. 给定的路径的序列是从右往左被处理的,后面每个 path 被依次解析,直到构造完成一个绝对路径. 例如,给定的路径片段的序列为:/foo./bar.baz,则调用 path.resolve('/foo', '/bar', 'baz') 会返回 /bar/baz. 如果处理完全部给定的 path 片段后还未生成一个绝对路径,则当前工作目录会被用上. 生成的路径是规

node模块之path——path.join和path.resolve的区别

1.path.join([...paths]) path.join() 方法使用平台特定的分隔符把全部给定的 path 片段连接到一起,并规范化生成的路径. 长度为零的 path 片段会被忽略. 如果连接后的路径字符串是一个长度为零的字符串,则返回 '.',表示当前工作目录. 以上是nodejs官方文档上的描述.我们可以抓取几个关键字,"平台特定的分隔符"."path片段", "规范化". "平台特定的分隔符": window

path.join()和path.resolve()区别

一.区别 1.path.join() 方法使用平台特定的分隔符作为定界符将所有给定的 path 片段连接在一起,然后规范化生成的路径. 2.path.resolve() 方法将路径或路径片段的序列解析为绝对路径. 二.例子 看前准备: '/user' 和 'user' ,有没有 '/' 的区别: 有斜杠:代表的事根目录下的user 没有斜杠:标识当前目录下的user 1.path.join path.join('a', 'b', 'c') 的结果是  '/a/b/c' path.join('a'

node中 path.join 和 path.resovle 区别

console.log(__dirname) console.log('----') console.log(path.resolve(__dirname, '/a/b', '../')) console.log(path.resolve(__dirname, './a/b', '../')) 运行可以得到如下结果: 可以看到: 1.__dirname 是当前脚本文件的路径 2.path.resolve() 可以把接收若干路径参数并且拼接,其中绝对路径 ‘/a/b’ 会覆盖前面的:如果是相对路径

node的path.join 和 path.resolve的区别

直接上图: join resolve 明显可以看出,join只会帮你把路径连接起来,而resolve会以当前路径为父路径来把你提供的路径连接起来 原文地址:https://www.cnblogs.com/amiezhang/p/8461648.html

Python——os.path.dirname(__file__) 与 os.path.join(str,str)

Python os.path.dirname(__file__) Python os.path.join(str,str) (1).当"print os.path.dirname(__file__)"所在脚本是以完整路径被运行的, 那么将输出该脚本所在的完整路径,比如: python d:\pythonSrc\test\test.py 那么将输出 d:\pythonSrc\test (2).当"print os.path.dirname(__file__)"所在脚本

Python os.path.dirname(__file__) os.path.join(str,str)

Python os.path.dirname(__file__) Python os.path.join(str,str) (1).当"print os.path.dirname(__file__)"所在脚本是以完整路径被运行的, 那么将输出该脚本所在的完整路径,比如: python d:\pythonSrc\test\test.py 那么将输出 d:\pythonSrc\test (2).当"print os.path.dirname(__file__)"所在脚本

os.path.join路径拼接的问题

问题一: import os a = os.path.join("/test1", "/test2") print(a) b = os.path.join("/test1", "test2") print(b) 输出:/test2 /test1/test2 使用os.path.join第二个参数的首个字符如果是"/" , 拼接出来的路径会不包含第一个参数 问题二: os.path.join拼接的路径出现了反

python os path join urlretrieve 文件操作

分析下面的操作: import os from urllib3 import request class file_retrieve(): def __init__(self): self.path = os.path.join(os.path.dirname(os.path.dirname(__file__)),'images') print(self.path) if not os.path.exists(self.path): os.mkdir(self.path) print(self.