资讯专栏INFORMATION COLUMN

node.js之path模块的使用

twohappy / 1274人阅读

摘要:拼接路径中没有带有绝对路径没有末尾的路径分隔符结果为拼接路径中带有绝对路径结果为注意其中的为我的工作路径,请对应替换自己的路径查看按照顺序,依次拼接路径并转为后的结果路径,路径末尾的带有路径分隔符。结果为返回操作系统中文件分隔符是是。

path模块包含一系列处理和转换文件路径的工具集,通过 require("path") 可用来访问这个模块。
知识点:对window系统,目录分隔为"", 对于UNIX系统,分隔符为"/",针对".."返回上一级,发现多个斜杠或反斜杠时会替换成一个,/,//,与都被统一转换为

方法
1、path.resolve([path1], [path2], ...)

  按照顺序依次拼接,获取的是绝对路径,路径末尾的不会带有路径分隔符,若合并后的路径没有构成一个绝对路径,则会默认使用当前工作目录的绝对路径。

  // 拼接路径中没有带有绝对路径
  var _path = path.resolve("path3", "path4", "a/bcc"); // 没有末尾的路径分隔符
  // 结果为:D:others
odeexamplespath3path4acc
  // 拼接路径中带有绝对路径
  var _path = path.resolve("D://work/ready/demo", "path3", "path4", "a/bcc");
  // 结果为:D:work
eadydemopath3path4acc

注意: 其中的D:othersnodeexamples为我的工作路径,请对应替换自己的路径查看

2、path.join([path1], [path2], ...)

  按照顺序,依次拼接路径、并转为normalize后的结果路径,路径末尾的带有路径分隔符。

  var _path = path.join("path1", "path2p/cc//", "/c/../ttt");
  // 结果为:path1path2pcc	tt
3、path.relative()

  获取相对路径,获取两个路径之间的相对关系。

from 当前路径,并且方法返回值是基于from指定到to的相对路径,路径末尾的不带有路径分隔符

to 到哪路径

  var from = "D:workserver",
      to = "D:/work/ready/demo";
  var _path = path.relative(from, to); // 表示从from 到 to的相对路径
  // 结果为:..
eadydemo

4、path.isAbsolute()

  获取绝对路径,是一个绝对路径(比如 "E:/abc"或"E:"),或者是以“/”或“”开头的路径,二者都会返回true。

  console.log(path.isAbsolute("D:workserver")); // true
  console.log(path.isAbsolute("workserver")) // true
  console.log(path.isAbsolute("/temp/../..")); // true
  console.log(path.isAbsolute("E:/github/nodeAPI/abc/efg")); // true
  console.log(path.isAbsolute("///temp123")); // true
  console.log(path.isAbsolute("//temp123")); // true
5、path.normalize(path)

  路径解析、得到规范化的格式。

  var _path = path.normalize(__dirname + "//test/a//b/..//c");
  // 结果为:D:others
odeexamples	estac
6、path.format(pathObject)

  该方法用于将一个字符串类型的路径转化为一个路径对象(pathObject)。该路径对象当中包括文件目录,文件名,扩展名等。

  var _path = path.format(path.format({ root: "E:",
    dir: "D:others
odeexamples/test",
    base: "util you.mp4",
    ext: ".mp4",
    name: "util you as me" 
    }
  ));
  // 结果为:D:others
odeexamples/testutil you.mp4
7、path.parse()

  该方法用于将一个路径对象转化为一个字符串类型的路径(pathString)。

  var _path = path.parse(__dirname + "/test/util you.mp3");
  // 结果为:
  // { root: "D:",
  //   dir: "D:others
odeexamples/test",
  //   base: "util you.mp3",
  //   ext: ".mp3",
  //   name: "util you" 
  // }
8、path.dirname()

  获取路径中目录结构,不会转为normalize后的结果路径。

  var _path = path.dirname(__dirname + "/test/hha/util you.mp3"); // 注意/
  // 结果为:D:others
odeexamples/test/hha 
  var _path = path.dirname(__dirname + "/test/hha/"); // 注意/
  // 结果为:D:others
odeexamples/test
9、path.basename()

  获取路径中文件名(.ext则包括后缀名)。

var _path = path.basename(__dirname + "/test/util you.mp3", ".mp3");
var _path = path.basename(__dirname + "/test/util you", ".mp3");
var _path = path.basename(__dirname + "/test/util you", ".ext");
// 结果为:util you
var _path = path.basename(__dirname + "/test/util you.mp3");
var _path = path.basename(__dirname + "/test/util you.mp3", "");
var _path = path.basename(__dirname + "/test/util you.mp3", ".ext");
// 结果为:util you.mp3
var _path = path.basename(__dirname + "/test/", ".mp3");
// 结果为:test
10、path.extname()

  获取路径中文件后缀名。

  var _path = path.extname(__dirname + "/test/util you.mp3");
  // 结果为:.mp3
  var _path = path.extname(__dirname + "/test/util you");
  // 结果为:为空
属性
1、path.win32和path.posix

  这两个均为属性。
  path:会根据当前操作系统来确定是使用windows的方式来操作路径,还是使用linux的方式来操作路径。
  path.win32:允许在任意操作系统上使用windows的方式来操作路径。
  path.posix:允许在任意操作系统上使用linux的方式来操作路径。
  故在windows系统中,path==path.win32,而在linux系统当中,path==path.posix。

  console.log(path == path.win32); // true
  console.log(path == path.posix); // false
2、path.delimiter

  返回操作系统中目录分隔符,如window是";", Unix中是":"。

  console.log(path.delimiter);
  // 结果为:;
3、path.sep

  返回操作系统中文件分隔符; window是"", Unix是"/"。

  console.log(path.sep);
  // 结果为:
  console.log("fooaraz".split(path.sep));  
  // [ "foo", "bar", "baz" ]
  console.log("foo/bar/baz".split(path.sep));  
  // win下返回["foo/bar/baz"],但在*nix系统下会返回["foo","bar","baz"]

参见官方文档

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/95417.html

相关文章

  • 手把手教你写一个 Webpack Loader

    摘要:这个由提供的工具。在转换步骤是异步时,你可以这样告诉本次转换是异步的,会在中回调结果通过返回异步执行后的结果参考编写一个 本文示例源代码请戳github博客,建议大家动手敲敲代码。 本文不会介绍loader的一些使用方法,不熟悉的同学请自行查看Webpack loader 1、背景 首先我们来看一下为什么需要loader,以及他能干什么?webpack 只能理解 JavaScript...

    JiaXinYi 评论0 收藏0
  • 一字一句搞懂vue-clivue webpack template配置

    摘要:神一样的存在。所以呢,就利用两天时间,参考了一些他人的文章,查阅了一些官方的配置,就在此先稍微记录一下。这份配置解析是基于最新版本的。不过,我非常建议,先别看我的文章,自己一句一句的通读一遍。和中的配置含义相似。 webpack--神一样的存在。无论写了多少次,再次相见,仍是初见。有的时候开发vue项目,对尤大的vue-cli感激涕零。但是,但是,但是。。。不是自己的东西,真的很不想折...

    atinosun 评论0 收藏0
  • Webpack坑位输出

    摘要:之输出的最后就是为了得到打包结果。在这里可以看到很多相似,但是有不同含义的名次,如和,和,那他们有什么区别呢而这里的又是什么意思呢将多个模块打包之后的代码集合称为。在这样打包的话,会报错。所以就想搞明白这两个的区别到底是什么。webpack之输出 webpack的最后就是为了得到打包结果。 那这是一个怎么样的过程,不同的配置,会有什么样的结果呢? 本文的原文在我的博客中:github.com...

    miqt 评论0 收藏0
  • Node.js 高级进阶 fs 文件模块学习

    摘要:回调函数提供两个参数和,表示有没有错误发生,是文件内容。文件关闭第一个参数文件时传递的文件描述符第二个参数回调函数回调函数有一个参数错误,关闭文件后执行。 showImg(//img.mukewang.com/5d3f890d0001836113660768.jpg); 人所缺乏的不是才干而是志向,不是成功的能力而是勤劳的意志。 —— 部尔卫 文章同步到github博客:https:/...

    verano 评论0 收藏0
  • 浅析webpack源码convert-argv模块(二)

    摘要:接下来我看看一下函数我们先按照分支走为读取是里的对象,饶了这大的一个圈子,那么接下来一起来看一看对你的输入配置做了怎么样的处理吧 打开webpeck-cli下的convert-argv.js文件 // 定义options为空数组 const options = []; // webpack -d 检查 -d指令 if (argv.d) { //... } ...

    lemon 评论0 收藏0

发表评论

0条评论

twohappy

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<