博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
理解Path对路径进行操作的API
阅读量:5733 次
发布时间:2019-06-18

本文共 2757 字,大约阅读时间需要 9 分钟。

阅读目录

一:理解normalize方法

该方法将非标准路径字符串转换为标准路径字符串,在转换过程中执行如下处理:

1. 解析路径字符串中的 '..' 字符串与 '.' 字符串,返回解析后的标准路径。

2. 将多个斜杠字符串转换为一个斜杠字符串,比如将 '\\' 转换为 '\'。
3. 将windows操作系统中的反斜杠字符串转换为正斜杠字符串。
4. 如果路径字符串以斜杠字符串结尾,则在转换后的完整路径字符串末尾保留该斜杠字符串。

该方法使用如下所示:

path.normalize(path);

在该方法中,使用一个参数path,该参数值为需要被转换的路径字符串。该方法返回被转换后的路径字符串。

下面我们在项目中根目录下建立一个a子目录,在a子目录下新建一个b子目录,然后在b子目录下新建一个message.txt, 内容为:我喜欢编写代码,我们将使用normalize方法解析 './/a//b//d//..//c/e//..//'路径字符串,解析该路径后,并且读取message.txt文件的内容,如下代码:

const fs = require('fs');const path = require('path');const myPath = path.normalize('.//a//b//d//../e//..//');console.log(myPath); // 输出 a/b/const file = fs.createReadStream(myPath + 'message.txt');file.on('data', (data) => { console.log(data.toString()); // 输出 我喜欢编写代码 });

输出如下所示:

二:理解join方法

该方法将多个参数值字符串结合为一个路径字符串,使用方式如下所示:

path.join([path1], [path2], [...]);

在该方法中,使用一个或多个字符串值参数,该方法返回将这些字符串值参数结合而成的路径字符串。

请看如下demo, 在项目的根目录下有 a/b/message.txt, 内容还是为 '我喜欢编写代码', 请看如下代码:

const fs = require('fs');const path = require('path');const myPath = path.join(__dirname, 'a', 'b');console.log(myPath);const file = fs.createReadStream(myPath + '/message.txt');file.on('data', (data) => {  console.log(data.toString());});

输出如下所示:

三:理解dirname方法

该方法用于获取一个路径中的目录名,使用方法如下所示:

path.dirname(p);

该方法使用一个参数,参数值为一个路径,可以是相对路径、绝对路径、也可以为一个目录的路径、也可以是一个文件的路径。

当参数值为目录的路径时:该方法返回该目录的上层目录。

当参数值为文件路径时:该方法返回该文件所在的目录。

请看如下demo:

const path = require('path');// 指定相对目录路径const a = path.dirname('./a/b/c/d');console.log(a); // 输出 ./a/b/c// 指定相对文件路径const b = path.dirname('./a/b/c/d/message.txt');console.log(b); // 输出 ./a/b/c/d// 指定绝对目录路径const c = path.dirname('/a/b/c/d');console.log(c); // 输出 /a/b/c// 指定绝对文件路径const d = path.dirname('/a/b/c/d/message.txt');console.log(d); // 输出 /a/b/c/d

四:理解basename方法

该方法用于获取一个路径中的文件名,使用方式如下所示:

path.basename(p, [ext]);

在该方法中,使用两个参数,p参数为必须的参数,它必须为一个文件的完整路径,可以是相对路径,也可以是一个绝对路径。

ext是可选参数,该参数的作用是在方法返回的文件名中去除该文件的扩展名。请看如下所示的基本代码:

const path = require('path');// 默认返回文件名 index.htmlconst a = path.basename('/a/b/c/d/index.html');console.log(a); // 输出 index.html// 返回index.html后,去除.html扩展名,因此会返回 indexconst b = path.basename('./a/b/c/d/index.html', '.html');console.log(b); // 输出 index// 返回index.html后,去除html的扩展名,因此会返回 index.const c = path.basename('./a/b/c/d/index.html', 'html');console.log(c); // 输出 index.// 如果扩展名不存在的话,什么都不去除const d = path.basename('./a/b/c/d/index.html', 'ejx');console.log(d); // 输出 index.html

五:理解extname方法

该方法用于获取一个路径中的扩展名,使用方法如下所示:

path.extname(p);

在该方法中,使用一个参数p,参数p必须为一个文件的完整路径,可以为相对路径,也可以为绝对路径,在该参数值中指定文件的扩展名(以'.'开始),当参数值中指定的文件没有指定扩展名时,会返回一个空字符串。

比如如下代码:

const path = require('path');const a = path.extname('/a/index.html');console.log(a); // 输出 '.html'const b = path.extname('/a/index.');console.log(b); // 输出 '.'const c = path.extname('/a/index');console.log(c); // 输出 ''

转载地址:http://qhlwx.baihongyu.com/

你可能感兴趣的文章
用MySQL创建数据库和数据库表
查看>>
计算题:挣值、预测、沟通、盈亏平衡点、
查看>>
RAM 大全-DRAM, SRAM, SDRAM的关系与区别
查看>>
Dedecms V5.7后台的两处getshell
查看>>
zhanzaiyi
查看>>
opencv3.2将中文输出到图片上
查看>>
Java序列化接口的作用总结1
查看>>
php分页类的二种调用方法(转载)
查看>>
iptables详解
查看>>
权威解读什么是实时BI分析
查看>>
ocrsearch的横屏转竖屏的解决方案
查看>>
Struts 2 - Architecture
查看>>
都有点不敢写东西了
查看>>
获取上月最后一天
查看>>
VIM常用操作命令梳理
查看>>
java中set和get方法的理解
查看>>
在一段文本中查找邮箱地址并进行提取
查看>>
jquery基础
查看>>
MDbg.exe(.NET Framework 命令行调试程序)
查看>>
.core
查看>>