Node.js文件操作详解

2020-06-17 05:53:53易采站长站整理


var path = require(‘path’);

path.normalize(‘/foo/bar//baz/asdf/quux/..’);

// => ‘/foo/bar/baz/asdf’

连接路径

使用path.join()函数,可以连接任意多个路径字符串,只用把所有路径字符串依次传递给join()函数就可以:

                   var path = require(‘path’);

                   path.join(‘/foo’, ‘bar’, ‘baz/asdf’, ‘quux’, ‘..’);

                   // => ‘/foo/bar/baz/asdf’

如你所见,path.join()内部会自动将路径标准化。

解析路径

用path.resolve()可以把多个路径解析为一个绝对路径。它的功能就像对这些路径挨个不断进行“cd”操作,和cd命令的参数不同,这些路径可以是文件,并且它们不必真实存在——path.resolve()方法不会去访问底层文件系统来确定路径是否存在,它只是一些字符串操作。

比如:


                   var path = require(‘path’);

                   path.resolve(‘/foo/bar’, ‘./baz’);

                   // => /foo/bar/baz

                   path.resolve(‘/foo/bar’, ‘/tmp/file/’);

                   // => /tmp/file

如果解析结果不是绝对路径,path.resolve()会把当前工作目录作为路径附加到解析结果前面,比如:

        path.resolve(‘wwwroot’, ‘static_files/png/’, ‘../gif/image.gif’);
        // 如果当前工作目录是/home/myself/node, 将返回
        // => /home/myself/node/wwwroot/static_files/gif/image.gif’

计算两个绝对路径的相对路径

path.relative()可以告诉你如果从一个绝对地址跳转到另外一个绝对地址,比如:

                var path = require(‘path’);

                path.relative(‘/data/orandea/test/aaa’, ‘/data/orandea/impl/bbb’);