Node.js中无需额外依赖,如何分离文件名与目录路径?
Node.js 原生分离文件路径与文件名的方法
完全不需要额外依赖!Node.js 内置的 path 核心模块就是干这个的,比自己写正则或者装第三方包靠谱多了,还能跨平台兼容不同系统的路径格式(比如Windows的\和类Unix的/)。
下面给你几个常用的实现方式:
1. 分别获取目录路径和文件名
用 path.dirname() 拿目录,path.basename() 拿文件名,直接对应你想要的效果:
// 引入核心path模块,不用npm装任何东西 const path = require('path'); const fullPath = 'src/main/css/file.css'; // 提取目录路径 const dirPath = path.dirname(fullPath); console.log(dirPath); // 输出: src/main/css // 提取带扩展名的文件名 const fileName = path.basename(fullPath); console.log(fileName); // 输出: file.css
如果需要不带扩展名的文件名,还可以给basename加第二个参数指定扩展名:
const fileNameWithoutExt = path.basename(fullPath, '.css'); console.log(fileNameWithoutExt); // 输出: file
2. 一次性获取所有路径信息
用 path.parse() 可以直接得到一个包含所有路径细节的对象,想用哪个属性就取哪个,非常灵活:
const pathInfo = path.parse(fullPath); console.log(pathInfo); // 输出结果: // { // root: '', // dir: 'src/main/css', // base: 'file.css', // ext: '.css', // name: 'file' // }
之后你就可以通过 pathInfo.dir 拿到目录,pathInfo.base 拿到带扩展名的文件名,pathInfo.name 拿到纯文件名。
这些方法都是Node.js官方维护的,稳定性和兼容性拉满,完全没必要用第三方包~
内容的提问来源于stack exchange,提问作者Ole
相关产品推荐
相关产品推荐

