标签:存在 linux workspace pac esc html 字符 引入 ext
//两种分隔符 windows的路径: C:\temp\myfile.html mac、Unix、Linux的路径: /tmp/myfile.html //网站地址也是 /a/b/c/d
basename
//base 就是基本的 basename("字符串的路径","可选的扩张名");返回文件名 参数都是字符串 const path = require(‘path‘); // 引入path模块 才能使用path path.basename(‘/a/b.html‘); // 返回: ‘b.html‘ 带后缀名的 path.basename(‘/a/b.html‘,‘.html‘); //b 不带后缀名的 // 路径 \a\b.html console.log(path.basename(‘\\a\\b.html‘)); // 返回b.html 由于\存在转义的效果,一般会使用\ / 左-> 正斜杠,\ 右 -> 反斜杠
dirname
path.dirname("字符串路径");返回 最后一个文件的目录 就是返回最后一个前面的路径 var s=path.dirname("/a/b/c/d"); var ss=path.dirname("/a/b/c/d/e.js"); /a/b/c /a/b/c/d
extname
//扩展名 path.extname("字符串路径") 返回从最后一次出现 .(句点)字符到 path 最后一部分的字符串结束 var ss=path.extname("/a/b/c/d/e.js"); //.js console.log(path.extname("/a/b/c/d/e.js.css")); //.css
resolve
path.resolve() 该方法将一些的 路径/路径段 解析为绝对路径。 例子:我当前的工作路径为/workspace/demo path.resolve() =>> /workspace/demo 当前工作目录的绝对路径 path.resolve(‘‘) =>> /workspace/demo path.resolve(__dirname) =>> /workspace/demo path.resolve(‘/img/books‘, ‘/net‘) =>> ‘/net‘ 最后一个/为根目录 path.resolve(‘img/books‘, ‘/net‘) =>> ‘/net‘ path.resolve(‘img/books‘, ‘./net‘) =>> ‘/workspace/demo/img/books/net‘ img前面没有/ 默认是当前路径下面的 ./代表上一个路径的最后一个目录 path.resolve(‘/img/books‘, ‘./net‘) =>> ‘/img/books/net‘ path.resolve(‘/img/books‘, ‘net‘) =>> ‘/img/books/net‘ 不加/跟加./ 一样 path.resolve(‘/img/books‘, ‘../net‘) =>> ‘/img/net‘ ../上一个路径片段的倒数第二个目录 path.resolve(‘src‘,‘/img/books‘, ‘../net‘) =>> ‘/img/net‘ path.resolve(‘src‘,‘./img/books‘, ‘../net‘) =>> ‘/workspace/demo/src/img/net‘ path.resolve(‘src‘,‘img/books‘, ‘../net‘) =>> ‘/workspace/demo/src/img/net‘ // 总结一下:从后向前,若字符以 / 开头,不会拼接到前面的路径; //若以 ../ 开头,拼接前面的路径,但是不含前面一节的最后一层路径; //若以 ./ 开头 或者没有符号 则拼接前面路径; ./同一文件夹下
join
度为零的 path 片段会被忽略。 如果连接后的路径字符串是一个长度为零的字符串,则返回 ‘.‘,表示当前工作目录 长度为零 就是这个是个空字符串""; path.join(‘/img‘, ‘book‘, ‘net/abc‘, ‘inter‘, ‘..‘); =>> /img/book =>> /img/book/net/abc =>>/img/book/net/abc/inter =>>/img/book/net/abc path.join(‘/img/books‘, ‘../net‘)) =>> /img/net ..跟../ 返回上一次目录 path.join(‘img/books‘, ‘../net‘)) =>> img/net img前面没有/的不会添加当前目录 这是跟path.resolve的区别 path.join(‘/img/books‘, ‘./net‘)) =>> /img/books/net ./跟没有/或.是一样的 path.join(‘img/books‘, ‘./net‘)) =>> img/books/net path.join(‘/img/books‘, ‘net‘)) =>> /img/books/net path.join(‘img/books‘, ‘net‘)) =>> /img/books/net path.join(‘/img/books‘, ‘/net‘)) =>> /img/books/net path.join(‘img/books‘, ‘/net‘)) =>> img/books/net // 总结一下 区别:join()只是拼接各个path片段, //并不像resolve()一样除了拼接各个字段还拼接了工作目录的路径, //其次如果以/开头的字符串片段在join并不像resolve一样是只返回自身, //还有就是.. 同 ../是一个意思都代表上一级
parse
path.parse() 方法返回一个对象,这个对象就是path对象的组成部分。 var s=path.parse("/a/b/c/d/e.js"); 返回一个对象 { root: ‘/‘, dir: ‘/a/b/c/d‘, base: ‘e.js‘, ext: ‘.js‘, name: ‘e‘ }
format
path.format(传入一个对象,这个对象就是 path.parse返回的对象) 返回一个字符串路径 var s=path.format({ root:"\r", dir:"a\\b\\c", base:"e.js" }); a\b\c\e.js
sep
var s=path.sep; 不同系统下返回的而不一样 console.log(s); 返回 返回文件夹之间的分隔符
标签:存在 linux workspace pac esc html 字符 引入 ext
原文地址:https://www.cnblogs.com/myniu/p/11870185.html