1.连接路径:path.join([path1][, path2][, ...])

path.join()方法可以连接任意多个路径字符串。要连接的多个路径可做为参数传入。

path.join()方法在接边路径的同时也会对路径进行规范化。例如:

var path = require('path');
//合法的字符串连接
path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')
// 连接后
'/foo/bar/baz/asdf' //不合法的字符串将抛出异常
path.join('foo', {}, 'bar')
// 抛出的异常 TypeError: Arguments to path.join must be strings'

2.路径解析:path.resolve([from ...], to)

path.resolve()方法可以将多个路径解析为一个规范化的绝对路径。其处理方式类似于对这些路径逐一进行cd操作,与cd操作不同的是,这引起路径可以是文件,并且可不必实际存在(resolve()方法不会利用底层的文件系统判断路径是否存在,而只是进行路径字符串操作)。例如:

path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile')

相当于

cd foo/bar
cd /tmp/file/
cd ..
cd a/../subfile
pwd

例子:

path.resolve('/foo/bar', './baz')
// 输出结果为
'/foo/bar/baz'
path.resolve('/foo/bar', '/tmp/file/')
// 输出结果为
'/tmp/file' path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif')
// 当前的工作路径是 /home/itbilu/node,则输出结果为
'/home/itbilu/node/wwwroot/static_files/gif/image.gif'

3.对比

const path = require('path');
let myPath = path.join(__dirname,'/img/so');
let myPath2 = path.join(__dirname,'./img/so');
let myPath3 = path.resolve(__dirname,'/img/so');
let myPath4 = path.resolve(__dirname,'./img/so');
console.log(__dirname); //D:\myProgram\test
console.log(myPath); //D:\myProgram\test\img\so
console.log(myPath2); //D:\myProgram\test\img\so
console.log(myPath3); //D:\img\so<br>
console.log(myPath4); //D:\myProgram\test\img\so

最新文章

  1. 《深入理解Java内存模型》读书总结
  2. try catch里面try catch嵌套
  3. MacOS下Python的多版本管理(pyenv)
  4. Emacs 之查看帮助
  5. 总结七条助你成为Linux高手的超棒忠告
  6. redis API使用说明
  7. python中列表和字典常用方法和函数
  8. Maven学习小结(七 生命周期[转])
  9. URL编码 URLEncoder 示例
  10. Java处理java.util.ConcurrentModificationException异常
  11. js局部变量,参数
  12. vxWorks应用程序加载的另一种办法
  13. Nginx 如何增大nginx使用cpu有效时长
  14. Web API的参数、多版本和Filter
  15. java 使用反射在dto和entity 实体类之间进行转换
  16. background-size 导致的背景不居中问题
  17. SharePoint Word Service-PowerShell
  18. SELENIUM如何调用FIREFOX时加载插件
  19. Flutter - Error: &#39;xxx&#39; is imported from both package...
  20. BZOJ 4521 CQOI 2016 手机号码 数位DP

热门文章

  1. AIO系列文档(1)----图解ByteBuffer
  2. 深入理解Spring Redis的使用 (九)、通过Redis 实现 分布式锁 的 BUG,以及和数据库加锁的性能测试
  3. 写给大忙人的centos下ftp服务器搭建(以及启动失败/XFTP客户端一直提示“用户身份验证失败”解决方法)
  4. [Swift]LeetCode806. 写字符串需要的行数 | Number of Lines To Write String
  5. [Swift]LeetCode810. 黑板异或游戏 | Chalkboard XOR Game
  6. Npoi简单读写Excel
  7. Saiku设置展示table数据不隐藏空的行数据信息(二十六)
  8. 使用SDL2显示一张图片,SDL2上手贴
  9. Error: Default interface methods are only supported starting with Android N (--min-api 24): java.io.InputStream org.apache.poi.sl.usermodel.ObjectShape.readObjectData()
  10. 重写equals的详细说明