• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
ellaha
博客园    首页    新随笔    联系   管理    订阅  订阅
Node.js核心模块API之路径操作

参考文档https://nodejs.org/dist/latest-v14.x/docs/api/path.html#path_path_delimiter

var path = require('path');
console.log(path.basename('/foo/bar/baz/asdf/quux.html'));  // quux.html

// 获取文件执行路径
console.log(__dirname);  // D:\Users\peiyuli\PycharmProjects\untitled\src\js
// 获取文件执行路径 + 文件名称
console.log(__filename);  // D:\Users\peiyuli\PycharmProjects\untitled\src\js\04.js
// 获取文件执行路径
console.log(path.dirname('/foo/bar/baz/asdf/quux'));  // /foo/bar/baz/asdf
// 获取文件扩展名称
console.log(path.extname('index.html')); // .html
// 路径的格式化处理
// path.format(); obj -> string
// path.parse();  string -> obj

var obj = path.parse(__filename);
console.log(obj);
// 执行结果
// {
//   root: 'D:\\', 文件的根路径
//   dir: 'D:\\Users\\peiyuli\\PycharmProjects\\untitled\\src\\js', 文件的全路径
//   base: '04.js', 文件名称
//   ext: '.js',  扩展名
//   name: '04'   文件名称
// }

var objpath1 = {
  root: 'D:\\',
  base: '04.js',
  ext: '.js',
  name: '04'
};
console.log(path.format(objpath1));  //  D:\04.js

var objpath2 = {
  root: 'D:\\',
  dir: '\\PycharmProjects\\untitled\\src\\js',
  base: '04.js',
  ext: '.js',
  name: '04'
};
console.log(path.format(objpath2)); // \PycharmProjects\untitled\src\js\04.js

// 判断是否为绝对路径
console.log(path.isAbsolute('C:\\foo\\..'));  // true
console.log(path.isAbsolute('C:/foo/..'));    // true

// 拼接路径 在拼接路径的时候会格式化路径 .表示当前路径 ..表示上一层路径
console.log(path.join('/foo', 'bar', 'baz/asdf', 'quux', '..'));  //  /foo/bar/baz/asdf

// 规范化路径 .表示当前路径 ..表示上一层路径
console.log(path.normalize('/foo/bar//baz/asdf/quux/..')); // Linux下规范路径  /foo/bar/baz/asdf

console.log(path.normalize('C:\\temp\\\\\\foo\\bar\\..\\'));  // windows下规范路径  C:\\temp\\foo\\

// 计算两个路径的相对路径
console.log(path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb'));  // ..\\..\\impl\\bbb

// 解析路径 cd
console.log(path.resolve('/foo/bar', '/tmp/file/'));  // /tmp/file (因为这两个都是根路径,先进入第一个路径,再进到第二个路径下,最后结果是第二个路径)

console.log(path.resolve('/foo/bar', './baz'));  // /foo/bar/baz (./表示当前路径)
// wwwroot 表示相对路径,以当前路径为参考点,先进入wwwroot中
console.log(path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif'));  // D:\Users\peiyuli\PycharmProjects\untitled\src\js\wwwroot\static_files\gif\image.gif

//path.delimiter 路径分隔符
console.log(path.delimiter); // windows中返回; Linux返回 :

// path.sep 环境变量分隔符
console.log(path.sep); // windows返回\ Linux返回 /
console.log('foo\\bar\\baz'.split(path.sep));  // ['foo', 'bar', 'baz']

 

posted on 2021-05-25 15:10  ellaha  阅读(148)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3