首先需要导入path模块:
const path = require('path');
path.basename(path[,.ext]):
// 获取路径的最后一部分
console.log(path.basename('/foo/bar/baz/asdf/quux.html'));
console.log(path.basename('/foo/bar/baz/asdf/quux.html', '.html'));
path.dirname(path):
// 获取路径
console.log(__dirname);
console.log(path.dirname(__dirname));
console.log(path.dirname('/abc/qqq/www/abc'));
path.extname(path):
// 获取扩展名称
console.log(path.extname('index.html'));
path.parse(path):
let obj = path.parse(__filename);
console.log(obj);
/*
{ root: 'E:\\', 文件的跟路径
dir: 'E:\\node\\day02\\02-code',文件的全路径
base: '02.js',文件的名称
ext: '.js',扩展名
name: '02' 文件名称
}
*/
path.format(pathObj):
let objpath = {
root : 'd:\\',
dir : 'd:\\qqq\\www',
base : 'abc.txt',
ext : '.txt',
name : 'abc'
};
let strpath = path.format(objpath);
console.log(strpath);
path.isAbsolute(path):
// 判断是否为绝对路径
console.log(path.isAbsolute('/foo/bar'));
console.log(path.isAbsolute('C:/foo/..'));
path.join([...paths]):
// 拼接路径(..表示上层路径;.表示当前路径),在连接路径的时候会格式化路径
console.log(path.join('/foo', 'bar', 'baz/asdf', 'quux', '../../'));
path.normalize(path):
// 规范化路径
console.log(path.normalize('/foo/bar//baz/asdf/quux/..'));
console.log(path.normalize('C:\\temp\\\\foo\\bar\\..\\'));
path.relative(from, to):
// 计算相对路径
console.log(path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb'));
console.log(path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb'));
path.resolve([...paths]):(对于相对路径与绝对路径的处理有区别)
指定的路径序列是从右往左开始处理的,后面的 path
被依次处理,直到构造完绝对路径。 例如,指定的路径片段序列为:/foo
、/bar
、baz
,则调用 path.resolve('/foo', '/bar', 'baz')
会返回 /bar/baz
。
如果处理完所有 path
片段后还未生成绝对路径,则使用当前工作目录。
生成的路径是规范化后的,且末尾的斜杠会被删除,除非路径是根目录。
长度为零的 path
片段会被忽略。
如果没有传入 path
片段,则返回当前工作目录的绝对路径。
// 解析路径
console.log(path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif'));
path.delimiter:
console.log(path.delimiter);//环境变量分隔符(windows中使用; linux中使用:)
path.sep:
console.log(path.sep);//表示路径分隔符(windows是\ Linux是/)