首页 > 编程语言 >Node.js使用path模块处理文件路径

Node.js使用path模块处理文件路径

时间:2022-11-24 17:36:03浏览次数:47  
标签:Node code bar 路径 js itbilu path


首先需要引入path模块

var path = require('path');

1.文件路径处理:path.normalize(p)。path模块中的normalize()方法用来规范化路径字符串。可用于处理路径中的”//”、”..”、”.”等字符。例如:

var path = require('path');
path.normalize('/foo/bar//baz/asdf/quux/..');
// 处理后
'/foo/bar/baz/asdf'

2.连接路径:path.join([path1][, path2][, …])。path.join()方法可以连接任意多个路径字符串。要连接的多个路径可做为参数传入。path.join()方法在接边路径的同时也会对路径进行规范化。例如:

var path = require('path');
//合法的字符串连接
path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')
// 连接后
'/foo/bar/baz/asdf'

//不合法的字符串将抛出异常
path.join('foo', {}, 'bar')
// 抛出的异常
TypeError: Arguments to path.join must be strings'

3.路径解析:path.resolve([from …], to)。path.resolve()方法可以将多个路径解析为一个规范化的绝对路径。其处理方式类似于对这些路径逐一进行cd操作,与cd操作不同的是,这引起路径可以是文件,并且可不必实际存在(resolve()方法不会利用底层的文件系统判断路径是否存在,而只是进行路径字符串操作)。例如:

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/itbilu/node,则输出结果为
'/home/itbilu/node/wwwroot/static_files/gif/image.gif'

3.查找两个绝对路径的相对关系:path.relative(from, to)。path.relative()方法可以找出一个绝对路径到另一个绝对路径的相对关系。例如:

var path = require('path');
path.relative('/Users/liuht/code/itbilu/demo', '/Users/liuht/code/zszsgc/lib');
// 结果
'../../zszsgc/lib'

5.提取路径的组成部分:path.dirname(p) 、path.basename(p[, ext]) 、path.extname(p)
path.dirname()方法可以提取出一个文件路径中的目录的部分。path.basename()方法可以提取出一个文件路径中的文件的部分。path.extname()方法可以提取文件的扩展名。例如:

var path = require('path');
path.dirname('/Users/liuht/code/itbilu/demo/path.js')
// 结果
'/Users/liuht/code/itbilu/demo'

path.basename('/Users/liuht/code/itbilu/demo/path.js')
// 结果
'path.js'

path.extname('/Users/liuht/code/itbilu/demo/path.js')
// 结果
'.js'
var path = require('path');

path.basename('/Users/liuht/code/itbilu/demo/path.js', '.js')
// 结果
'path'

path.basename('/Users/liuht/code/itbilu/demo/path.js', '.html')
// 结果
'path.js'


标签:Node,code,bar,路径,js,itbilu,path
From: https://blog.51cto.com/u_15890522/5884384

相关文章

  • js对Json数组进行深复制
    在开发微信小程序的时候,很多时候我们传json对象的时候都需要小心,因为传进去的都是引用,所以有深复制Json对象的需求,方法如下:varbasicInfoTmp=JSON.parse(JSON.stringify(u......
  • jsTree使用
    jsTree可以显示一个树状视图,支持复选框选中,选中触发事件等:其中主要用到的方法有:1.设置数据:这里的data一般是ajax请求服务器返回的,必须要有id,parent,text这三个字段用于显......
  • [node]启动一个简单的node接口
    来自知乎。需要先安装一个node,安装过程不表。 //复制这个文件到目录,再输入一下命令://npmiexpress//nodenodeServer.js//启动之后可以通过浏览器尝试访问:......
  • js实现动态时间功能,实时时间自走动功能
    js实现动态时间功能,实时日期自走动功能效果如下:html页面js方式实现1.获取实时日期<divid="headerTime"class="header-timetext"><span......
  • Android用Path类绘制路径
    classMyViewextendsView{floatphase;PathEffect[]effects=newPathEffect[7];int[]colors;privatePaintpaint;Pathpath;publicMyView......
  • Dayjs常用获取日期方法
    1.获取当天的日期dateFormat(dayjs().endOf('day'));2.获取当前周的起止日期constoneDayTime=24*60*60*1000;consttime=dayjs().endOf('week')......
  • JS 开始时间/结束时间和当前时间进行比较
     项目需求:到截止日期一些功能不可以再使用,那么需要判断当前时间与截止时间进行比较,记录一下吧 注意:1.橙色字体的代码换成你自己的变量2..valueOf()其实就是将中国......
  • nestjs搭建HTTP与WebSocket服务
    最近在做一款轻量级IM产品,后端技术栈框架使用了nodejs+nestjs作为服务端。同时,还需要满足一个服务同时支持HTTP服务调用以及WebSocket服务调用,此文主要记录本次搭建过程,......
  • SpringBoot整合mybatis plus报错:net.sf.jsqlparser.schema.Column, is available from
     Anattemptwasmadetocallthemethodnet.sf.jsqlparser.schema.Column.withColumnName(Ljava/lang/String;)Lnet/sf/jsqlparser/schema/Column;butitdoesnote......
  • java中post发送json格式数据
    /***发送post请求*@paramURL数据发送地址*@paramjsonjson格式数据内容*@paramheadParams请求头内容*@return请求结果*/......