Node.Js Path模块
来源:互联网 发布:windows无法检索有关 编辑:程序博客网 时间:2024/06/04 19:19
require('path')模块
该模块包含用于处理和转换文件路径的实用程序。几乎所有这些方法只执行字符串转换。没有协商文件系统以检查路径是否有效。
一、路径格式化、反格式化1.path.parse(pathString);
将路径字符串转换成对象
- var path=require('path');
-
-
-
- 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');
-
-
-
- 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);
- console.log('url2:',url2);
- console.log('url3:',url3);
- console.log('url4:',url4);
- console.log('url5:',url5);
二、跨平台标准化
1.path.normalize(p)
标准化路径字符串,处理冗余的“ .. ”、“ . ”、“ / ”字符
- var path=require('path');
-
-
-
- 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');
-
-
-
-
- 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');
-
-
- console.log('url1:',url1);
- console.log('url2:',url2);
- console.log('url4:',url4);
-
3.path.sep返回对应平台下的文件夹分隔符,win下为'\',*nix下为'/'
- var path=require('path');
-
-
- var url1 = path.sep;
- var url2 = 'foo\\bar\\baz'.split(path.sep);
- var url3 = 'foo/bar/baz'.split(path.sep);
-
- console.log('url1:',url1);
- console.log('url2:',url2);
- console.log('url3:',url3);
4.path.delimiter
返回对应平台下的路径分隔符,win下为';',*nix下为':'
- var path=require('path');
-
-
- var env = process.env.PATH;
- var url1 = env.split(path.delimiter);
- console.log('路径分隔符:',path.delimiter);
- console.log('env:',env);
- console.log('url1:',url1);
三、绝对路径、相对路径处理
1.path.isAbsolute(path)
判断是否是绝对路径,比如 'E:/abc',或者是以“/”开头的路径,二者都会返回true
- var path=require('path');
-
-
-
- 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);
- console.log('url2:',url2);
- console.log('url3:',url3);
- console.log('url4:',url4);
- console.log('url5:',url5);
- console.log('url6:',url6);
2.path.relative(from,to)
获取从 from 到 to 的相对路径
- var path=require('path');
-
-
-
- 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);
- console.log('url2:',url2);
- console.log('url3:',url3);
3.path.resolve([from ...], to)
从源地址 from 到目的地址 to 的绝对路径。既是使用cd命令的最后的绝对目录
- var path=require('path');
-
-
-
-
- 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');
-
-
-
-
- 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);
- console.log('url2:',url2);
- console.log('url3:',url3);
- console.log('url4:',url4);
2.path.basename(p,[ext])
返回路径中的最后一部分,类似于Unix 的 basename 命令。 ext 为需要截掉的尾缀内容
- var path=require('path');
-
-
-
-
-
- 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);
- console.log('url2:',url2);
- console.log('url3:',url3);
- console.log('url4:',url4);
3.path.extname(p)
返回路径文件的扩展名(若存在)
- var path=require('path');
-
-
- 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);
- console.log('url2:',url2);
- console.log('url3:',url3);
- console.log('url4:',url4);
- console.log('url5:',url5);