Node.js学习笔记——对路径进行操作
path模块
normalize方法
将非标准路径字符串转换为标准路径字符串:
- 解析路径字符串中的“. . ”字符串与“.”字符串,返回解析后的标准路径
- 将多个斜杠字符串转换为一个斜杠字符串
- 将windows操作系统中的反斜杠字符串转换为正斜杠字符串。
- 如果路径字符串以斜杠字符串结尾,则在转换后的完整路径字符串末尾保留该斜杠字符串。
path.normalize ( p )
var fs=require('fs');
var path=require('path');
var mypath=path.normalize('.//test//test//test//');//输出'test\test\test\'
console.log(mypath);
var file=fs.createReadStream(mypath+'hello.txt');
file.on('data',function (data) {
console.log(data.toString());
})
join方法
将多个参数值字符串结合为一个路径字符串
path.join([path1],[path2],[…]) 返回字符串值参数结合而成的路径字符串
var fs=require('fs');
var path=require('path');
var mypath=path.join(__dirname,'test','test','test');
console.log(mypath+'/hello.txt');
var file=fs.createReadStream(mypath+'/hello.txt');
file.on('data',function (data) {
console.log(data.toString());
})
resolve方法
path.resolve([path1],[path2],[…])
以应用程序根目录为起点,根据所有的参数值字符串解析出一个绝对路径
- 无“。。”“。”“/”。应用程序根目录为Windows操作系统中的“d:\a\b”,第一个参数值字符串为”c“,则将当前参考目录定为”d:a\b\c\“
- 以“。。”开头。应用程序根目录为Windows操作系统中的“d:\a\b”,第一个参数值字符串为”…/c“,则将当前参考目录定为”d:a\c\“
- 以“。”开头。应用程序根目录为Windows操作系统中的“d:\a\b”,第一个参数值字符串为”./c“,则将当前参考目录定为”d:a\b\c“
-
- 以“/”开头。应用程序根目录为Windows操作系统中的“d:\a\b”,第一个参数值字符串为”/c“,则将当前参考目录定为”d:\c“
var fs=require('fs');
var path=require('path');
var mypath1=path.resolve('../a');//c:\Users\Administrator\a
var mypath2=path.resolve('./a');//c:\Users\Administrator\Desktop\a
var mypath2=path.resolve('/a');//c:\a
var mypath2=path.resolve('a');//c:\Users\Administrator\Desktop\a
relative方法
path.relative(from,to)
- from和to都是一个路径。
- 返回如果在代码中将第一个路径视为当前路径并使用相对路径来指定第二个路径时应该使用的表达式。
- 在windows中这两个路径应该位于同一个硬盘分区,否则方法直接返回第二个参数路径的绝对路径。
var fs=require('fs');
var path=require('path')
console.log(path.relative('c:\\hello\\bithc','c:\\sd'));//..\..\sd
dirname方法
path.dirname§返回一个路径中的目录名
var fs=require('fs');
var path=require('path');
console.log(path.dirname('c:\\asd\\wda\\ca')); //c:\asd\wda
basename方法
path.basename(p,[ext])返回一个路径中的文件名
- p是完整路径,ext是去除扩展名的(看例子)
var fs=require('fs');
var path=require('path')
console.log(__filename);
console.log(path.basename(__filename,'.js'));
console.log(path.basename(__filename,'js'));
console.log(path.basename(__filename));
//c:\Users\Administrator\Desktop\test\test\test\hello.js
//hello
//hello.
//hello.js
extname方法
path.extname§返回一个路径中的拓展名
var fs=require('fs');
var path=require('path')
console.log('/foo/index.html');
console.log('/foo/index.');
console.log('/foo/index');
/*
/foo/index.html
/foo/index.
/foo/index
*/
path.sep属性和path.delimiter属性
- path.sep的属性值可能为“\”后者"/"
-path.delimiter属性值可能为“;”