node学习六:路径操作

首先需要导入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/barbaz,则调用 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是/)

猜你喜欢

转载自blog.csdn.net/zerobaek/article/details/84493021