Path模块

来自《JavaScript 标准参考教程(alpha)》,by 阮一峰

目录

path.join()

path.join方法用于连接路径。该方法的主要用途在于,会正确使用当前系统的路径分隔符,Unix系统是”/“,Windows系统是”\“。

var path = require('path');
path.join(mydir, "foo");

上面代码在Unix系统下,会返回路径mydir/foo

path.resolve()

path.resolve方法用于将相对路径转为绝对路径。

它可以接受多个参数,依次表示所要进入的路径,直到将最后一个参数转为绝对路径。如果根据参数无法得到绝对路径,就以当前所在路径作为基准。除了根目录,该方法的返回值都不带尾部的斜杠。


// 格式
path.resolve([from ...], to) // 实例
path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile')

上面代码的实例,执行效果类似下面的命令。


$ cd foo/bar
$ cd /tmp/file/
$ cd ..
$ cd a/../subfile
$ pwd

更多例子。

path.resolve('/foo/bar', './baz')
// '/foo/bar/baz' path.resolve('/foo/bar', '/tmp/file/')
// '/tmp/file' path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif')
// 如果当前目录是/home/myself/node,返回
// /home/myself/node/wwwroot/static_files/gif/image.gif

该方法忽略非字符串的参数。

accessSync()

accessSync方法用于同步读取一个路径。

下面的代码可以用于判断一个目录是否存在。

function exists(pth, mode) {
try {
fs.accessSync(pth, mode);
return true;
} catch (e) {
return false;
}
}

path.relative

path.relative方法接受两个参数,这两个参数都应该是绝对路径。该方法返回第二个路径相对于第一个路径的那个相对路径。

path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb')
// '../../impl/bbb'

上面代码中,如果当前目录是/data/orandea/test/aaa,进入path.relative返回的相对路径,就会到达/data/orandea/impl/bbb

如果path.relative方法的两个参数相同,则返回一个空字符串。

path.parse()

path.parse()方法可以返回路径各部分的信息。

var myFilePath = '/someDir/someFile.json';
path.parse(myFilePath).base
// "someFile.json"
path.parse(myFilePath).name
// "someFile"
path.parse(myFilePath).ext
// ".json"

版权声明 | last modified on 2014-12-29

最新文章

  1. mysql高并发和表类型
  2. UVa 488 - Triangle Wave
  3. Android EditText控件即设置最小高度又运行高度随内容增加而变化
  4. idea 开发环境jdk崩溃
  5. Grunt配置文件编写技巧及示范
  6. poj1651 区间dp
  7. Google账户无法登陆-Solved
  8. Ubuntu 改动bash
  9. 【BZOJ1030】文本生成器
  10. 层叠上下文 Stacking Context
  11. Google Map API v2 步步为营 (二)----- Location
  12. git分支的使用
  13. mysql GTID
  14. js内存深入学习(二)
  15. RN开发中的报错以及告警
  16. [译]A NON-TRIVIAL EXAMPLE OF MEDIATR USAGE
  17. flask 使用宏渲染表单(包含错误信息)
  18. C#交换两个变量值的多种写法
  19. git快速入门 push/clone/reset/merge/切换分支全都有
  20. hdu 3664 1~n排列(ai>i ) 为k个数

热门文章

  1. JAVA笔记5__构造块、静态块/单例设计模式/继承/final关键字/super关键字
  2. 让Visual Studio x64 支持 __asm内联汇编
  3. centos 7 安装nfs 实现主机目录共享
  4. python编程中的流程控制
  5. 基于霸道秉火的STM32F103ZET6嵌入式开发之------定时器中断3
  6. vm扩展磁盘容量后不能启动
  7. 安装spark 后 NoClassDefFoundError
  8. Spring Boot程序中@JsonIgnoreProperties与@JsonIgnore基本使用
  9. 用户案例 | 腾讯小视频&转码平台云原生容器化之路
  10. [cf1137F]Matches Are Not a Child's Pla