极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node

本文更佳阅读体验:https://www.yuque.com/sunluyong/node/path

文件操作在 Node.js 编程中使用频率很高,路径处理是文件操作的前提,Node.js 通过 path 模块提供了路径处理的基础 API

Windows 与 POSIX 对比

path 模块在不同操作系统处理会有所差异, 当在 Windows 操作系统上运行时, path 模块会假定正被使用的是 Windows 风格的路径(C:\temp\myfile.html),而在 POSIX 操作系统会默认使用 POSIX 的路径风格(/tmp/myfile.html),路径风格和操作系统不一致会出现意外的结果

POSIX,Portable Operating System Interface,是 UNIX 系统的一个设计标准,很多类 UNIX 系统也在支持兼容这个标准,如 Linux 和 Mac OS 所基于的 FreeBSD

path.basename() 方法用于返回一个路径的 basename

// Windows 下执行
path.basename('C:\\temp\\myfile.html'); // myfile.html // POSIX 下执行
path.basename('C:\\temp\\myfile.html'); //C:\\temp\\myfile.html

如果希望在不同操作系统都返回指定系统的结果,需要使用

  • path.win32.method
  • path.posix.method

下文使用 POSIX 风格

parse(path)

parse.parse() 方法用来解析文件路径,返回 对应的元信息对象

path.parse('/home/user/dir/file.txt');
{ root: '/',
dir: '/home/user/dir',
base: 'file.txt',
ext: '.txt',
name: 'file' }

format(parseObject)

path.format() 方法从对象返回路径字符串,是 path.parse 的反操作

path.format({
root: '/ignored',
dir: '/home/user/dir',
base: 'file.txt'
});
// 返回: '/home/user/dir/file.txt'

normalize(path)

path.normalize() 方法规范化给定的 path,解析 ..   和 .

path.normalize('/foo/bar//baz/asdf/quux/..'); // 返回:/foo/bar/baz/asdf

join([...paths])

path.join() 使用操作系统规定的分隔符将参数中的 path 片段连接,并且规范化

path.join('/foo', 'bar', 'baz/asdf', 'quux', '..'); // 返回:/foo/bar/baz/asdf

path.relative(from, to)

path.relative() 方法根据当前工作目录返回 from 到 to 的相对路径

path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb');
// 返回: '../../impl/bbb'

path.resolve([...paths])

path.resolve() 方法将路径或路径片段的序列解析为绝对路径

path.resolve('/foo/bar', './baz');
// 返回: '/foo/bar/baz' path.resolve('/foo/bar', '/tmp/file/');
// 返回: '/tmp/file' path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif');
// 如果当前工作目录是 /home/myself/node,
// 则返回 '/home/myself/node/wwwroot/static_files/gif/image.gif'

获取基本信息

  1. path.basename: 返回 path 最后一部分
  2. path.delimiter: 返回操作系统路径界定符,Windows 返回 ; POSIX 返回 :
  3. path.dirname: 返回文件目录名
  4. path.extname: 返回路径的拓展名(jquery.min.js 拓展名是 .js)
  5. path.isAbsolute 检测路径是否是绝对路径
  6. path.sep: 返回路径分隔符,Windows 返回 \ POSIX 返回 /

极简 Node.js 入门 - 2.1 Path的更多相关文章

  1. 极简 Node.js 入门 - 3.2 文件读取

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

  2. 极简 Node.js 入门 - 3.3 文件写入

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

  3. 极简 Node.js 入门 - 3.4 文件夹写入

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

  4. 极简 Node.js 入门 - 3.5 文件夹操作

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

  5. 极简 Node.js 入门 - 5.1 创建 HTTP 服务器

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

  6. 极简 Node.js 入门 - 5.2 url & querystring

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

  7. 极简 Node.js 入门 - 5.3 静态资源服务器

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

  8. 极简 Node.js 入门 - Node.js 是什么、性能有优势?

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

  9. 极简 Node.js 入门 - 1.2 模块系统

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

随机推荐

  1. sql多表语句

    多条件查询条件判空 最优写法 3三表带条件查询

  2. C# 泛型中的数据类型判定与转换

    提到类型转换,首先要明确C#中的数据类型,主要分为值类型和引用类型: 1.常用的值类型有:(struct) 整型家族:int,byte,char,short,long等等一系列 浮点家族:float, ...

  3. Java历史[史上最详细的阐述了Java发展的历史过程]

    Java历史 学习Java语言之前,我觉得大家应该是从头开始,对吧?不管你之前是学过还是没学过,都和学习某一个知识一样,从头开始去了解它,然后到这个深入的掌握,到最后你可能理解并且灵活的运用.所以它肯 ...

  4. Shell基本语法---if语句

    if语句 格式 #单分支 if [ 条件判断 ]; then 执行动作 fi if [ 条件判断 ]; then 执行动作 else 执行动作 fi #多分支 if [条件判断]; then 执行动作 ...

  5. C++语法小记---面向对象模型(实例的内存分布)

    面向对象的模型(内存分布) 对于一个对象而言,成员变量和成员函数是分开存放的 成员函数位于代码段,所有的类对象共有 成员变量为每一个对象独有,位于内存中 类对象在内存中的分布和struct完全相同 对 ...

  6. Crontab定时启动Supervisor任务

    1.  Crontab介绍 crontab的语法规则格式: 代表意义 分钟 小时 日期 月份 周 命令 数字范围 0~59 0~23 1~31 1~12 0~7 需要执行的命令 周的数字为 0 或 7 ...

  7. WebApi部署多服务器配置Nginx负载均衡

    01PARTCoreWebApi教程本地演示环境 Visual Studio2019 --- Vsersion:16.4.4 + NetCore3.1.2 02PARTNginx快速搭建配置负载均衡 ...

  8. Java基础之NIO

    NIO简介: Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API.NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同 ...

  9. 深入理解JVM(③)Java的锁优化

    前言 从JDK5到JDK6HotSpot虚拟机开发团队花费了大量的资源实现了各种锁优化技术,如适应性自旋(Adaptive Spinning).锁消除(Lock Elimination).锁膨胀(Lo ...

  10. python匿名函数和内置函数

    一.匿名函数 匿名函数定义lambda a,b,c:(x,y,z) a.b.c相当于形参,多个形参之间用逗号隔开,多个形参不能用括号括起来 (x.y.z)相当于返回值,多个返回值之间用逗号隔开,多个返 ...