码迷,mamicode.com
首页 > 其他好文 > 详细

c_路径_path

时间:2019-11-15 23:58:21      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:存在   linux   workspace   pac   esc   html   字符   引入   ext   

path 模块

	//两种分隔符 
	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);  返回	返回文件夹之间的分隔符
	

c_路径_path

标签:存在   linux   workspace   pac   esc   html   字符   引入   ext   

原文地址:https://www.cnblogs.com/myniu/p/11870185.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!