6.path模块
-- 未经授权禁止转载 --
import url from 'url'
import path from 'path'

//file:// 的使用场景: 1.跨平台兼容性 2.url相关的操作
console.log('当前文件的url格式路径:', import.meta.url) // file:///d:/workspace/node/demo/demo.js

let __filename = url.fileURLToPath(import.meta.url)
console.log('当前文件的路径:', __filename) // d:\workspace\node\demo\demo.js

let __dirname = path.dirname(__filename)
console.log('当前文件所在目录的路径:', __dirname) //d:\workspace\node\demo

let basename = path.basename(__filename) // demo.js
console.log('文件名:', basename)

let extname = path.extname(__filename) // .js
console.log('扩展名:', extname)

/*
pathObj: {
  root: 'd:\\', // 根目录 ( 在 Linux 上是 /, 在 Windows 上是盘符 d:\\ )
  dir: 'd:\\workspace\\node\\demo', //目录路径
  base: 'demo.js', //文件名
  ext: '.js', //扩展名
  name: 'demo' //文件名(不包含扩展名)
}
*/
let pathObj = path.parse(__filename) //路径解析
console.log('pathObj:', pathObj)

//错误示例
console.log('错误示例:', __dirname + "/DR.jpg") // d:\workspace\node\demo/DR.jpg

//path.join 路径拼接
let pathJoin = path.join(__dirname,"/DR.jpg") // d:\workspace\node\demo\DR.jpg
console.log('pathJoin:', pathJoin)

//path.resolve 会解析路径中的 ../(上级目录)  ./(当前目录)  /(根目录)
let pathResolve = path.resolve(__dirname,"/DR.jpg") // d:\DR.jpg
console.log('pathResolve:', pathResolve)

//分隔符
console.log('分隔符:', path.sep) // 在 Linux 上是 /(正斜杠), 在 Windows 上是 \(反斜杠)