path模块提供了一些工具函数,用于处理文件与目录的路径。由于windows和其他系统之间路径不统一,path模块还专门做了相关处理,屏蔽了彼此之间的差异。
可移植操作系统接口(POSIX)
posix(Portable Operating System Interface)
windows系统和类unix系统的路径的区别
目录结构的区别
windows:略
linux:
path模块
1.获取路径的文件名: path.basename(path[, ext])
参数:
- path <string> 完整文件名路径
- ext <string> 可选的文件扩展名
- 返回:<string>文件名
示例代码:
// 引入path模块
const path = require("path"); // const用于声明变量,变量的值不能改变。(简单类型的值不能变,引用类型的地址不能改变)
var strpath1 = "/home/lili/fortest.html";
var strpath2 = "c:\\user\\lisa\\Documents\\My\\Learn_CodeTych\\Vscode\\node2_laoma\\test\\test.html";
// path.basename 获取文件名
// 1.
console.log(path.basename(strpath1)); // fortest.html
console.log(path.basename(strpath2)); // test.html
// 2.
console.log(path.basename(strpath1, ".html")); // fortest
2. 其他的请自行查api文档:nodejs.cn/api/path.html
一些示例代码:
// 引入path模块
const path = require("path"); // const用于声明变量,变量的值不能改变。(简单类型的值不能变,引用类型的地址不能改变)
var strpath1 = "/home/lili/fortest.html";
var strpath2 = "c:\\user\\lisa\\Documents\\My\\Learn_CodeTych\\Vscode\\node2_laoma\\test\\test.html";
// path.basename 获取文件名
// 1.
console.log(path.basename(strpath1)); // fortest.html
console.log(path.basename(strpath2)); // test.html
// 2.
console.log(path.basename(strpath1, ".html")); // fortest
// path.delimiter
console.log(path.delimiter); // ;(显示当前系统的,由于当前操作系统是windows故是 ;)
console.log(path.win32.delimiter); // ;
console.log(path.posix.delimiter); // :
// ps: 通过win32调用windows的api;通过posix调用类unix的api。 (尽管path的底层已经做了处理,可是也可以通过调不同系统的api这样用)
// path.dirname
console.log(path.dirname(strpath2)); // c:\user\lisa\Documents\My\Learn_CodeTych\Vscode\node2_laoma\test
console.log(path.dirname(__filename)); // C:\Users\lisa\Documents\My\Learn_CodeTych\Vscode\node2_laoma (等价于 __filename)
// 获取扩展名
console.log(path.extname("a.html")) // .html