如何解析字符串格式的文件路径,输出对应层级路径对象数组?
实现思路
核心逻辑是路径分割+逐层拼接,常用编程语言都可以按照这个思路实现,以下用JavaScript作为示例:
- 首先处理输入容错,默认输入为标准绝对路径,以
/开头 - 初始化结果数组,首项固定为根目录对象
- 对输入路径按
/做分割,过滤掉分割后产生的空字符串片段 - 遍历分割得到的路径片段,逐层拼接完整路径,生成对应对象存入结果数组即可
代码实现
function parsePath(pathStr) { // 非绝对路径可根据自己的业务需求调整容错逻辑 if (!pathStr || !pathStr.startsWith('/')) return [] const res = [{ name: '/', path: '/' }] const segments = pathStr.split('/').filter(seg => seg !== '') let currentPath = '' for (const seg of segments) { currentPath += `/${seg}` res.push({ name: seg, path: currentPath }) } return res } // 测试用例 console.log(parsePath('/home/ubuntu')) /* 输出结果: [ {"name":"/","path":"/"}, {"name":"home","path":"/home"}, {"name":"ubuntu","path":"/home/ubuntu"} ] */
补充说明
如果输入路径末尾携带/(比如/home/ubuntu/),分割过滤后不会产生多余空片段,逻辑依然适用。如果需要支持相对路径,只需要调整初始化时的根目录配置即可。
内容的提问来源于stack exchange,提问作者Jax
相关产品推荐
相关产品推荐

