在实际开发中,除了基本的文件操作,还会涉及很多文件操作的相关问题,例如路径的拼接、操作文件目录等。
路径字符串操作 (Path 模块)
在文件操作过程中,经常会遇到路径拼接的问题,例如读取一个路径中的文件名部分,或者获取一个文件中的扩展名部分,把两个不完整的路径拼接成一个完整的路径。针对这些路径字符串的操作问题,Node.js 的Path模块提供了一些相关API,如表所示。
函数 | 说明 |
---|---|
basename(p[,ext]) | 获取文件名 |
dirname( p) | 获取文件目录 |
extname( p) | 获取文件扩展名 |
isAbsolute(path) | 判断是否是绝对路径 |
join([path][,path2][,…]) | 拼接路径字符串 |
normalize( p) | 将非标准路径转换为标准路径 |
sep | 获取操作系统的文件路径分隔符 |
Path为核心模块,模块标识为path,所以在文件中加载该模块可以使用如下语句:
var path = require('path') ;
由于Path模块的API都比较简单,下面将在REPL运行环境中直接为读者演示几个比较实用的API用法。需要注意的是,REPL 运行环境中不需要加载该模块,而是直接使用“模块名.函数”的方式进行调用。具体如下:
1. 获取文件名、文件目录、扩展名
(1). 打开终端,输入node命令,进入REPL运行环境,如图所示。
(2). 首先在REPL运行环境中定义一个文件路径字符串str,var str='c:/a/b/c/foo.txt;
,然后输入str字符串path.basename()、path.dirname() 和path.extname(),观察输出结果。
2.拼接路径字符串和转换标准路径
在REPL运行环境中,使用pathjoin()函数拼接路径字符串,如图所示:
“\”在字符串转义时会变为“\”,另外,在第三次测试时,第二个参数为“b”,path,join() 函数也会自动处理为合法路径,无须担心拼接路径出错的问题。