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:UserspeiyuliPycharmProjectsuntitledsrcjs
// 获取文件执行路径 + 文件名称
console.log(__filename);  // D:UserspeiyuliPycharmProjectsuntitledsrcjs4.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:4.js

var objpath2 = {
  root: 'D:\',
  dir: '\PycharmProjects\untitled\src\js',
  base: '04.js',
  ext: '.js',
  name: '04'
};
console.log(path.format(objpath2)); // PycharmProjectsuntitledsrcjs4.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:UserspeiyuliPycharmProjectsuntitledsrcjswwwrootstatic_filesgifimage.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']
原文地址:https://www.cnblogs.com/ella-li/p/14808904.html