切换导航
简历
工具
演示
查询
导航菜单
服务端
30
前端
114
数据库
82
进阶开发
8
桌面程序
2
QA
15
软件使用
36
规范协议
5
操作系统
11
AI
0
复用资源
6
硬件
0
标签
HTML
正则表达式
Json
包管理工具
vite
CSS
XPath
JavaScript
Jquery
less
ES6
Vue
React
vue 3
Layui
editor.md
sea.js
Zepto.js
mysql.js
mssql.js
NodeJs
Express
前端template
YAML
杂项
外部链接
.NET Core SDK和运行时安装包
淘宝 NPM 镜像
查询网
Tables Generator线上表格转换工具
引用cdn在线脚本和样式
首页
前端
nodeJs 基础之path路径操作
[TOC] ### 路径操作 路径的相关操作都需要引入模块path `const path = require('path')` #### path方法 + `path.basename()` 获取路径的最后一部分,如果路径是含有后缀的文件路径,可以设置第二个参数,去除后缀获取到文件的名称 ```js const path = require('path') console.log(path.basename("/a/b/c/x.html")) // 输出:x.html console.log(path.basename("/a/b/c/x.html",'.html')) // 输出:x console.log(path.basename("/a/b/c/x")) // 输出:x ``` + `path.dirname()` 获取路径的文件夹部分即最后一个`/`前面的目录部分 ```js const path = require('path') console.log(path.dirname("/a/b/c/x.html")) // 输出:/a/b/c console.log(path.dirname("/a/b/c/x")) // 输出:/a/b/c ``` + `path.extname()` 获取文件路径的扩展名,扩展名包含了 `.` ,如果没有扩展名只有`x.`时获取的就是`.`,如果连 `.` 也没有的话返回的就是'',如果最后一个 `/` 跟着的是 `.xxx` 返回的也是'' ```js const path = require('path') console.log(path.extname("/a/b/c/x.html")) // 输出:.html console.log(path.extname("/a/b/c/x.")) // 输出:. console.log(path.extname("/a/b/c/x")) // 输出:'' console.log(path.extname("/a/b/c/.x")) // 输出:'' ``` + `path.parse()` 将字符串转换为对象 + <mark>__filename</mark> 文件所在目录 ```js const path = require('path') let obj = path.parse(__filename) console.log(obj) // 输出:{ // root: 'D:\\', 文件跟路径 // dir: 'D:\\XXX\\MyProject\\Study\\nodejs', 文件路径 // base: '02.js', 文件名 // ext: '.js', 文件扩展名 // name: '02' 文件名 // } console.log(obj.base) // 输出:02.js ``` + `path.format` 将对象转换为字符串 ```js const path = require('path') let obj = { root: 'D:\\', dir: 'D:\\Study\\nodejs', base: '02.js', ext: '.js', name: '02' } console.log(path.format(obj)) // 输出:D:\Study\nodejs\02.js ``` + `path.isAbsolute()` 判断是否为绝对路径 ```js const path = require('path') console.log(path.isAbsolute('/foo/bar')) // 输出:true console.log(path.isAbsolute('c:/foo/')) // 输出:true console.log(path.isAbsolute('c:\\foo\\')) // 输出:true console.log(path.isAbsolute('foo/')) // 输出:false ``` + `path.join([...paths])` 拼接参数生成一个新的路径,参数 `paths` 中最后一个如果是`..`则返回的是路径的上层路径,如果是`../../`则返回的是上上层的路径,如果是 `.`返回当前路径,在链接路径的时候会格式化路径 + 说明:`../../` 和 `../..` 区别是返回的路径结尾是否有 `/` ```js const path = require('path') console.log(path.join("foo","x/y","z")) // 输出:foo\x\y\z console.log(path.join("foo","x/y","z","..")) // 输出:foo\x\y console.log(path.join("foo","x/y","z",".")) // 输出:foo\x\y\z console.log(path.join("foo","x/y","z","../../")) // 输出:foo\x\ console.log(path.join("foo","x/y","z","../..")) // 输出:foo\x ``` + `path.normalize()` 规范化路径 + 这里的 `..` 和 `path.join([...paths])`中是一样的作用,可以设置路径返回的层级 ```js const path = require('path') console.log(path.normalize("foo/bar//baz/...")) // 输出:foo\bar --(Liunx下的路径) console.log(path.normalize("c:\\temp\\\\foo\\..")) // 输出:c:\temp --(Windows下的路径) ``` + `path.relative(from,to)` 计算相对路径,计算第一个参数from到第二个参数to的相对 ```js const path = require('path') console.log(path.relative("foo/bar/x/y","foo/bar/z/s")) // 输出:..\..\z\s --(Liunx下的路径) console.log(path.relative("c:\\foo\\bar\\x\\y","c:\\foo\\bar\\z\\s")) // 输出:..\..\z\s --(Windows下的路径) ``` + `path.resolve([...paths])` 解析路径, + 在相对路径中,根据寻找路径的方式合并成一个新的路径,例如相对路径中 `../` 上个路径往上一层再合并后面的参数 + 在绝对路径中,返回的就是后面的那个绝对路径 ```js const path = require('path') console.log(path.resolve("foo/bar/x/y","foo/bar/z/s")) // 输出:E:\xxx\notejs\study\foo\bar\x\y\foo\bar\z\s console.log(path.resolve("foo/bar/x/y","../foo/bar/z/s")) // 输出:E:\xxx\notejs\study\foo\bar\x\foo\bar\z\s console.log(path.resolve("/foo/bar/x/y","/foo/bar/z/s")) // 输出:E:\foo\bar\z\s ``` #### path属性 + `path.sep` 环境变量分割符(windows中是<mark>;</mark> linux中是<mark>:</mark> ) ```js const path = require('path') console.log(path.sep) // 输出:; ``` + `path.delimiter` 路径分割符(windows中是<mark>\</mark> linux中是<mark>/</mark> ) ```js const path = require('path') console.log(path.delimiter) // 输出:\ ```
扫一扫手机看
点击排行
windows 文件资源管理器使用
Layui 弹窗open使用说明
SQL Server 中字符串函数使用
C# 使用QQ邮箱代理做邮件接收功能
SQL Server关于apply的两种形式cross apply 和 outer apply
ASP.NET MVC 模型的自定义验证
nvm安装及常用命令
SQL Server 中数据类型转换
SQL Server 中WITH AS短语的使用
IE浏览器下AJAX缓存问题导致数据不更新的解决办法
订阅号