Node.Js Path模块-文件或文件夹路径字符串操作
2016-08-24 11:02
836 查看
require('path')模块
该模块包含用于处理和转换文件路径的实用程序。几乎所有这些方法只执行字符串转换。没有协商文件系统以检查路径是否有效。
一、路径格式化、反格式化
1.path.parse(pathString);
将路径字符串转换成对象
2.path.format(pathObject)
将object对象序列化成字符串
二、跨平台标准化
1.path.normalize(p)
标准化路径字符串,处理冗余的“ .. ”、“ . ”、“ / ”字符
2. path.join([path1], [path2], [...])
将多个路径结合在一起,并转换为标准化的路径
3.path.sep
返回对应平台下的文件夹分隔符,win下为'\',*nix下为'/'
4.path.delimiter
返回对应平台下的路径分隔符,win下为';',*nix下为':'
三、绝对路径、相对路径处理
1.path.isAbsolute(path)
判断是否是绝对路径,比如 'E:/abc',或者是以“/”开头的路径,二者都会返回true
2.path.relative(from,to)
获取从 from 到 to 的相对路径
3.path.resolve([from ...], to)
从源地址 from 到目的地址 to 的绝对路径。既是使用cd命令的最后的绝对目录
四、目录,文件夹、文件名获取
1.path.dirname(p)
返回指定uri字符串中文件夹的路径,如果当前为目录,则返回上一级目录
该模块包含用于处理和转换文件路径的实用程序。几乎所有这些方法只执行字符串转换。没有协商文件系统以检查路径是否有效。
一、路径格式化、反格式化
1.path.parse(pathString);
将路径字符串转换成对象
var path=require('path'); //path.parse(pathString); //将路径字符串转换成对象 //传入的路径当文件路径处理,name返回的是文件名或最后文件夹名 var obj1=path.parse('/home/user/dir/file.txt'); console.info(obj1); { root: '/', //根目录 dir: '/home/user/dir', //文件所在目录 base: 'file.txt', //文件名 ext: '.txt', //文件扩展名 name: 'file' //文件名称,不含扩展名 } var obj2=path.parse('C:\\path\\dir\\index.html'); console.info(obj2); { root: 'C:\\', dir: 'C:\\path\\dir', base: 'index.html', ext: '.html', name: 'index' } var ojb3=path.parse('C:\\path\\dir\\'); console.info(ojb3); { root: 'C:\\', dir: 'C:\\path', base: 'dir', ext: '', name: 'dir' }
2.path.format(pathObject)
将object对象序列化成字符串
var path=require('path'); //path.format(pathObject) //将object对象序列化成字符串 // 结果证明 转换的时候,重点指定 目录dir 和 base文件名 var url1=path.format({ dir:'/home/user/dir', base:'file.txt' }); var url2=path.format({ root:'f:\\', base:'file.txt' }); var url3=path.format({ root:'f:', dir:'f:\\dir1\\dir2', name:'file', ext:'.txt' }); var url4=path.format({ base:'file.txt' }); var url5=path.format({ root:'f:', dir:'f:\\dir1\\dir2', base:'file.txt' }); console.log('url1:',url1); // /home/user/dir\file.txt console.log('url2:',url2); // file.txt console.log('url3:',url3); // f:\dir1\dir2\ console.log('url4:',url4); // file.txt console.log('url5:',url5); // f:\dir1\dir2\file.txt
二、跨平台标准化
1.path.normalize(p)
标准化路径字符串,处理冗余的“ .. ”、“ . ”、“ / ”字符
var path=require('path'); //path.normalize(p) 标准化路径字符串,处理冗余的“ .. ”、“ . ”、“ / ”字符 //如果在win下,返回 dir1\dir2格式 //如果在unix下,返回 dir1/dir2格式 var url1 = path.normalize('a/b/c/../user/vajoy/bin'); var url2 = path.normalize('a/b/c///../user/vajoy/bin/'); var url3 = path.normalize('./a/.././user/vajoy/bin/./'); console.info(url1); console.info(url2); console.info(url3);
2. path.join([path1], [path2], [...])
将多个路径结合在一起,并转换为标准化的路径
var path=require('path'); //path.join([path1], [path2], [...]) //将多个路径结合在一起,并转换为标准化的路径 //数组想中有 /或\ 才是有效目录项 //返回结果 已经进行了标准化处理 (path.normalize) var url1 = path.join('////./a', 'b////c', 'user/', 'vajoy', '..'); var url2 = path.join('a', '../../', 'user/', 'vajoy', '..'); var url4=path.join('c:\\one','\\abc\\','/dir/file.txt'); //var url3 = path.join('a', '../../', {}, 'vajoy', '..'); console.log('url1:',url1); // \a\b\c\user console.log('url2:',url2); // ..\user console.log('url4:',url4); // c:\one\abc\dir\file.txt //console.log('url3:',url3); // 存在非路径字符串,故抛出异常
3.path.sep
返回对应平台下的文件夹分隔符,win下为'\',*nix下为'/'
var path=require('path'); //path.sep //返回对应平台下的文件夹分隔符,win下为'\',*nix下为'/' var url1 = path.sep; var url2 = 'foo\\bar\\baz'.split(path.sep); var url3 = 'foo/bar/baz'.split(path.sep); console.log('url1:',url1); // win下为\,*nix下为/ console.log('url2:',url2); // [ 'foo', 'bar', 'baz' ] console.log('url3:',url3); // win下返回[ 'foo/bar/baz' ],但在*nix系统下会返回[ 'foo', 'bar', 'baz' ]
4.path.delimiter
返回对应平台下的路径分隔符,win下为';',*nix下为':'
var path=require('path'); //path.delimiter //返回对应平台下的路径分隔符,win下为';',*nix下为':' var env = process.env.PATH; //当前系统的环境变量PATH var url1 = env.split(path.delimiter); console.log('路径分隔符:',path.delimiter); //win下为“;”,*nix下为“:” console.log('env:',env); // C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\; console.log('url1:',url1); // ['C:\ProgramData\Oracle\Java\javapath','C:\Program Files (x86)\Intel\iCLS Client\']
三、绝对路径、相对路径处理
1.path.isAbsolute(path)
判断是否是绝对路径,比如 'E:/abc',或者是以“/”开头的路径,二者都会返回true
var path=require('path'); //path.isAbsolute(path) //判断是否是绝对路径 //比如 'E:/abc',或者是以“/”开头的路径,二者都会返回true var url1 = path.isAbsolute('../testFiles/secLayer'); var url2 = path.isAbsolute('./join.js'); var url3 = path.isAbsolute('temp'); var url4 = path.isAbsolute('/temp/../..'); var url5 = path.isAbsolute('E:/github/nodeAPI/abc/efg'); var url6 = path.isAbsolute('///temp123'); console.log('url1:',url1); // false console.log('url2:',url2); // false console.log('url3:',url3); // false console.log('url4:',url4); // true console.log('url5:',url5); // true console.log('url6:',url6); // true
2.path.relative(from,to)
获取从 from 到 to 的相对路径
var path=require('path'); //path.relative(from,to) //获取从 from 到 to 的相对路径 //如果跨越磁盘符,则直接返回to的字符串 var path = require('path'); var url1 = path.relative('C:\\vajoy\\test\\aaa', 'C:\\vajoy\\impl\\bbb'); var url2 = path.relative('C:/vajoy/test/aaa', 'C:/vajoy/bbb'); var url3 = path.relative('C:/vajoy/test/aaa', 'D:/vajoy/bbb'); console.log('url1:',url1); //..\..\impl\bbb console.log('url2:',url2); //url2: ..\..\bbb console.log('url3:',url3); //D:\vajoy\bbb
3.path.resolve([from ...], to)
从源地址 from 到目的地址 to 的绝对路径。既是使用cd命令的最后的绝对目录
var path=require('path'); //path.resolve([from ...], to) //从源地址 from 到目的地址 to 的绝对路径。 //从当前执行js文件的目录算起,计算相对路径的绝对路径 //如果指定内容跨越磁盘符,返回cd最后打开的绝对路径 var url1 = path.resolve('.', 'testFiles/..', 'trdLayer'); var url2=path.resolve('../../'); var url3=path.resolve('../','e:\\mywork','f:\\test1'); console.info(url1); console.info(url2); console.info(url3);
四、目录,文件夹、文件名获取
1.path.dirname(p)
返回指定uri字符串中文件夹的路径,如果当前为目录,则返回上一级目录
var path=require('path'); //path.dirname(p) //返回指定uri字符串中文件夹的路径 //如果当前为目录,则返回上一级目录 //对于Url格式的指定解析无效 var url1 = path.dirname('/foo/bar/baz/asdf/a.txt'); var url2 = path.dirname('/foo/bar/baz/asdf/'); var url3 = path.dirname('C:/vajoy/test/aaa'); var url4=path.dirname('http://www.gongjuji.net/byte'); console.log('url1:',url1); // /foo/bar/baz/asdf console.log('url2:',url2); // /foo/bar/baz console.log('url3:',url3); // C:/vajoy/test console.log('url4:',url4); // http://www.gongjuji.net[/code]
2.path.basename(p,[ext])
返回路径中的最后一部分,类似于Unix 的 basename 命令。 ext 为需要截掉的尾缀内容var path=require('path'); //path.basename(p,[ext]) // 返回路径中的最后一部分,类似于Unix 的 basename 命令。 // ext 为需要截掉的尾缀内容 // 如果指定文件路径,返回文件名 // 如果指定目录。返回最内层文件夹名 var url1 = path.basename('/foo/bar/baz/asdf/a.txt'); var url2 = path.basename('/foo/bar/baz/asdf/a.txt','.txt'); var url3 = path.basename('/foo/bar/baz/asdf/'); var url4 = path.basename('C:/vajoy/test/aaa'); console.log('url1:',url1); // a.txt console.log('url2:',url2); // a console.log('url3:',url3); // asdf console.log('url4:',url4); // aaa
3.path.extname(p)
返回路径文件的扩展名(若存在)var path=require('path'); //path.extname(p) //返回路径文件的扩展名(若存在) var url1 = path.extname('/foo/bar/baz/asdf/a.txt'); var url2 = path.extname('/foo/bar/baz/asdf/a.txt.html'); var url3 = path.extname('/foo/bar/baz/asdf/a.'); var url4 = path.extname('C:/vajoy/test/.'); var url5 = path.extname('C:/vajoy/test/a'); console.log('url1:',url1); // .txt console.log('url2:',url2); // .html console.log('url3:',url3); // . console.log('url4:',url4); // console.log('url5:',url5); //
官网API:http://nodejs.cn/doc/node_4/path.html
相关文章推荐
- Node.js中path模块对路径的操作
- Node.js中路径处理模块path详解
- Node.js中路径处理模块path详解
- Node之文件路径处理模块:path模块
- 基于node.js的fs核心模块读写文件操作(实例讲解)
- 夺命雷公狗---node.js---12之fs模块文件的操作
- Node.j中path模块对路径的操作
- 【汇总】Node.js文件系统、路径的操作函数
- node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
- node.js文件及文件夹常用操作
- Node.js文件系统、路径的操作详解
- Node.js中文件操作模块File System的详细介绍
- node.js文件的复制,创建文件夹等相关操作
- Node.js文件系统、路径的操作函数
- node.js认识学习二:__dirname获取当前模块文件所在目录的完整绝对路径
- node.js的fs核心模块读写文件操作 -----由浅入深
- python3 常用模块(时间、os路径及文件操作、字符串比较,文件内容比较等模块)
- node.js零基础详细教程(2):模块化、fs文件操作模块、http创建服务模块
- node.js 使用fs模块对系统文件及目录进行读写操作
- Node.Js fs模块文件操作(一)