当前位置: 首页 > news >正文

Node.js-path模块

Path 模块

path 模块提供了 操作路径 的功能,我们将介绍如下几个较为常用的几个 API

  • ​​path.resolve([…paths])
    将路径片段​​解析为绝对路径​​(从右向左拼接,遇到绝对路径停止)
// 若参数为空,返回当前工作目录(process.cwd())
// 遇到 / 开头的路径会重置为根目录(如 path.resolve('/a', 'b') → /a/b)console.log(path.resolve('src', 'images/logo.png')); 
// 输出(当前目录为 /project):/project/src/images/logo.png
console.log(path.resolve('/tmp', 'file.txt')); 
// 输出:/tmp/file.txt
console.log(path.resolve('file.txt')); //\player\markdown-md\md\Node.js\file.txt
  • path.sep
    返回路径分隔符,Windows 下是 ​​\​​,POSIX 下是 ​​/​
console.log(path.sep); // Windows → '\',Linux/macOS → '/'
const customPath = ['dir', 'subdir', 'file.txt'].join(path.sep);
console.log(customPath); // 输出:dir/subdir/file.txt
  • ​​path.parse(path)
    将路径解析为一个对象,包含以下属性:
    解析路径为对象,包含 root、dir、base、ext、name 属性
const pathObj = path.parse('/dir/target.txt');
console.log(obj); // 输出:{ root: '/', dir: '/dir', base: 'target.txt', ext: '.txt', name: 'target' }
  • ​​path.basename(path [, ext])
    获取路径的​​基础名称​​(最后一段)
// ext:可选,移除指定扩展名(如 .html)
console.log(path.basename('/dir1/file.txt')); // 'file.txt'
console.log(path.basename('/dir1/file.txt', '.txt')); // 'file'
  • path.dirname(path)
  • 返回路径的​​目录名​​(最后一个分隔符前的部分)
console.log(path.dirname('/dir1/file.txt')); // '/dir1'
  • ​​path.extname(path)
    返回路径的​​扩展名​​(最后一个点后的部分)
console.log(path.extname('/dir1/file.txt')); // '.txt'
  • path.isAbsolute(path)
    判断路径是否​​绝对路径​​(以 ​​/​​ 开头)
console.log(path.isAbsolute('/dir1/file.txt')); // true
console.log(path.isAbsolute('dir1/file.txt')); // false
  • path.resolve() vs path.join()
方法特点示例输出(当前目录:/project)
path.resolve()返回绝对路径,遇到 / 重置根目录resolve(‘src’, ‘/img’) → /img
path.join()仅拼接路径,不转换绝对路径join(‘src’, ‘/img’) → src/img
  • path.normalize()
    规范化路径,将多个连续的路径分隔符(如 Windows 下的 ​​\​​)合并为一个
console.log(path.normalize('/dir1//dir2/../dir3')); // '/dir1/dir3'
console.log(path.normalize('/a//b '));  // '/a/b'
console.log(path.normalize('/a//b/..')); // '/a'
console.log(path.normalize('/a//b/../..')); // '/'

_dirname 与 process.cwd()​​

  • __dirname:当前脚本所在目录(固定值)。
  • process.cwd():进程启动目录(可动态变化
http://www.dtcms.com/a/264094.html

相关文章:

  • 12【进程间通信——管道】
  • 记本好书:矩阵力量:线性代数全彩图解+微课+Python编程
  • 【Go-策略模式】告别if/else hell,拥抱 Go 语言策略模式
  • js基础知识
  • 【组合数学】P11362 [NOIP2024] 遗失的赋值|普及+
  • 事务隔离级别深度解析:机制、语法与实战指
  • 力扣74 搜索二维矩阵
  • [密码学实战]深入解析ASN.1和DER编码:以数字签名值为例(三十一)
  • UniApp完全支持快应用QUICKAPP-以及如何采用 Uni 模式开发发行快应用优雅草卓伊凡
  • 从 Copilot 到 通用 Agent : 大厂在 AI Coding 上的应用和挑战
  • 华为云开始了“开发者空间 AI Agent 开发”活动
  • Anthropic 开源 LLM“电路追踪器”:首次可视化语言模型的“推理路径”!
  • SQLite与MySQL:嵌入式与客户端-服务器数据库的权衡
  • 使用mavros启动多机SITL仿真
  • 9-2 MySQL 分析查询语句:EXPLAIN(详细说明)
  • react-数据Mock实现——json-server
  • Jenkins 插件深度应用:让你的CI/CD流水线如虎添翼 [特殊字符]
  • 华锐互动:全方位定制化 VR 内容制作服务流程剖析​
  • [Python 基础课程]字符串
  • Redis集群数据流解析:从分层设计到一致性难题破解
  • Vue3 中 Excel 导出的性能优化与实战指南
  • A模块 系统与网络安全 第三门课 网络通信原理-3
  • Badoo×亚矩云手机:社交约会革命的“云端心跳加速剂“
  • 论文阅读:Align and Prompt (ALPRO 2021.12)
  • 狂神说 - Mybatis 学习笔记 --下
  • SVN 分支管理(本文以Unity项目为例)
  • 【C++】inline的作用
  • 齿轮的齿厚极限偏差如何确定?一起学习一下
  • Vue3——富文本
  • 地震灾害的模拟