Node.js路径操作实例详解

path.normalize(path)

path.normalize(path)
参数值为需要被转换的路径字符串。

该方法将非标准路径字符串转换为标准路径字符串,在转换过程中执行以下处理:

1) 解析路径字符串中的”..”字符串与”.”字符串,返回解析后的标准路径;

2) 将多个斜杠字符串转换为一个斜杠字符串,例如将”\\”转换为”\”;

3) 将Windows操作系统中的反斜杠字符串转换为正斜杠字符串;

4) 如果路径字符串以斜杠字符串结尾,则在转换后的完整路径字符串末尾保留该斜杠字符串。

例如:

console.log(path.normalize(".//a//b//d//..//c/e//..//"));
// a\b\c
path.join()

path.join([path1] [, path2] [...])
该方法将多个参数值字符串结合为一个路径字符串。

例如:

console.log(path.join("a", "b", "c", "..", "d"));
// a\b\d
path.resolve()

path.resolve(path1, [, path2] [...])
该方法以应用程序根目录为起点,根据所有的参数值字符串解析出一个绝对路径。

path.relative()

path.relative([from,] to)
用于获取两个路径之间的相对关系。如果在代码中降低一个路径视为当前路径,则使用相对路径来指定第二个路径时应该使用的表达式。

在Windows操作系统中这两个路径应该位于同一个硬盘分区中,否则方法直接返回第二个参数值路径的绝对路径。

例如:

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

path.dirname(path)
该方法用于获取一个路径中的目录名。当参数值为目录路径时,返回该目录的上层目录;当参数值为文件路径时,返回该文件所在目录。

path.basename()

path.basename(path [, ext])
该方法用于获取一个路径中的文件名。

例如:

path.basename('/foo/bar/baz/asdf/quux.html', '.html') // 返回quux
path.basename('/foo/bar/baz/asdf/quux.html', 'html') // 返回quux.
path.extname()

path.extname(path )
该方法用于获取一个路径中的扩展名。

path.isAbsolute()

path.isAbsolute(path)
判定path是否为绝对路径。一个绝对路径总是指向一个相同的位置,无论当前工作目录是在哪里。

例如:

path.isAbsolute('/foo/bar') // true
path.isAbsolute('/baz/..')  // true
path.isAbsolute('//server')  // true
path.isAbsolute('C:/foo/..') // true
path.isAbsolute('qux/')     // false
path.isAbsolute('.')        // false
path.sep属性

属性值为操作系统指定的文件分隔符,可能的属性值为”\\”(在Windows操作系统中)或”/”(在UNIX操作系统中)。

*nix 上的例子:

'foo/bar/baz'.split(path.sep)
// ['foo', 'bar', 'baz']
Windows 上的例子:

'foo\\bar\\baz'.split(path.sep)
// ['foo', 'bar', 'baz']
path.delimiter属性

属性值为操作系统指定的路径分隔符,可能的属性值为”;”(在Windows操作系统中)或”:”(在UNIX操作系统中)。

*nix 上的例子:

process.env.PATH.split(path.delimiter)
// ['/usr/bin', '/bin', '/usr/sbin', '/sbin', '/usr/local/bin']
Windows 上的例子:

console.log(process.env.PATH)
// 'C:\Windows\system32;C:\Windows;C:\Program Files\nodejs\'

process.env.PATH.split(path.delimiter)
// ['C:\Windows\system32', 'C:\Windows', 'C:\Program Files\nodejs\']

时间: 2024-08-08 05:04:42

Node.js路径操作实例详解的相关文章

Mybatis中的resultType和resultMap查询操作实例详解_java

resultType和resultMap只能有一个成立,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,resultMap解决复杂查询是的映射问题.比如:列名和对象属性名不一致时可以使用resultMap来配置:还有查询的对象中包含其他的对象等. MyBatisConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configura

关于动态执行代码(js的Eval)实例详解_javascript技巧

熟悉javascript的朋友对Eval()函数可能都不会陌生,我们可以用它来实现动态代码的执行,我自己甚至写过一个网页专门用来计算算术表达式的,计算能力上比google.baidu的计算器还要好一些,至少精度要高,但是如果超出了四则运算的话,表达式的形式会复杂很,比如以百度给出的例子: log((5+5)^2)-3+pi需要写成Math.log(Math.pow(5+5,2))*Math.LOG10E-3+Math.PI才能用Eval进行计算,对于这一点我还没有想到理想的解决方案.好了,这不是

Android Wifi的forget()操作实例详解

Android  Wifi的forget()操作实例详解 我们在处理某个Wifi连接时,有时会需要忘掉当前连接的密码信息.执行这项操作,我们需要调用WifiManager::forget()函数: /** * Delete the network in the supplicant config. * * This function is used instead of a sequence of removeNetwork() * and saveConfiguration(). * * @p

Android对sdcard扩展卡文件操作实例详解_Android

Android对sdcard扩展卡文件的操作其实就是普通的文件操作,但是仍然有些地方需要注意.比如: 1.加入sdcard操作权限: 2.确认sdcard的存在: 3.不能直接在非sdcard的根目录创建文件,而是需要先创建目录,再创建文件: 实例如下: (1)在AndroidManifest.xml添加sdcard操作权限 <!-- sdcard权限 --> <uses-permission android:name="android.permission.WRITE_EXT

Android编程之在SD卡上进行文件读写操作实例详解_Android

本文实例讲述了Android编程之在SD卡上进行文件读写操作的方法.分享给大家供大家参考,具体如下: 很多知识只有真正理解掌握之后才能运用自如,举一反三.对Java中的文件操作和android系统SD卡里面的文件操作,你觉得有区别吗,显然没有本质区别,如果勉强说有,那也是不足为道滴,但我们在实际运用中却要注意如下几点,不然问题会缠上你. 1.首先想要对android系统SD卡里文件操作需要添加使用权限: android系统是不会让外来程序随意动自己内存的,如果没有许可证,不好意思,不准你动我地盘

PHP文件上传操作实例详解_php技巧

本文实例分析了PHP文件上传操作.分享给大家供大家参考,具体如下: 文件上传 发生在浏览器向服务器发出的请求中. 文件,对于浏览器来讲,就是表单中的一个特殊类型的数据而已. 浏览器表单中的数据,两种类型: 字符串类型(字节流编码) 文件类型(二进制编码),文件是表单数据中一部分 服务器角度: 在接受浏览器请求时,处理好表单内的数据.根据数据类型不同使用不同处理方法: 字符串类型,存储在$_POST变量中(内存) 文件型数据,存储在上传临时目录中 表单提交时,浏览器会默认的行为: 表单内的的内容都

Python文件操作类操作实例详解_python

本文讲述了Python文件操作类的操作实例,详细代码如下: #!/usr/bin/env python #!/usr/bin/env python #coding:utf-8 # Purpose: 文件操作类 #声明一个字符串文本 poem=''' Programming is fun测试 When the work is done if you wanna make your work also fun: use Python! ''' #创建一个file类的实例,模式可以为:只读模式('r'

js闭包用法实例详解_javascript技巧

本文实例讲述了js闭包用法.分享给大家供大家参考,具体如下: 引言 在公司中需要写一个js脚本来进行网站的统计,实现类似百度统计或者站长统计的功能,在实现的过程中自己感觉写的代码还是可以的,因为之前的js代码都是这些写,但是在组长代码走查的时候却非常的不满意,因为我们在js中写的方法都是全局的方法,因为我们写的东西需要嵌入到别人的界面中,所以这些全局的东西很可能会和别人的东西重名从而引发错误,所以说组长就给我留下一句话:用js闭包包起来. 变量作用域 我们都非常的熟悉变量的作用域就分为:全局变量

php类的自动加载操作实例详解_php技巧

本文实例讲述了php类的自动加载操作.分享给大家供大家参考,具体如下: 类的自动加载 在外面的页面中,并不需要去引入类文件,但程序会在需要一个类的时候自动去"动态加载"该类. ① 创建一个对象的时候new ② 直接使用一个类名(操作静态属性与方法) 使用__autoload魔术函数 当出现两种情况时候,就会调用该函数,该函数需要我们预先定义,在其中写好加载类文件的通用语句 function __autoload($name){ require './lib/'.$name.'.clas