如何用Node.js获取父文件夹名?VSCode工作区路径代码排查
解决VSCode工作区路径获取父文件夹名的问题
我来帮你排查下问题哈!你的代码核心问题是没正确处理VSCode的Uri对象——你直接把vscode.workspace.workspaceFolders[0].uri传给path模块的方法,但它并不是字符串格式的文件路径,而是一个包含路径信息的Uri实例,所以path.dirname没法正确解析它。
修正步骤:
- 首先从Uri对象中提取系统可识别的文件路径字符串:Uri对象自带
fsPath属性,能直接返回对应系统格式的路径(比如你例子里的c:/xampp/htdocs/rain/tree)。 - 之后再用
path模块的方法去处理这个字符串路径。
修正后的代码:
const path = require('path'); // 先获取Uri对应的文件路径字符串 const pathname = vscode.workspace.workspaceFolders[0].uri.fsPath; // 得到 "c:/xampp/htdocs/rain/tree" // 先取父文件夹路径,再分割取最后一段 const prevFolder = path.dirname(pathname).split(path.sep).pop(); console.log(prevFolder); // 输出 "rain"
额外优化建议:
你也可以用path.basename替代split(path.sep).pop(),代码会更简洁:
const prevFolder = path.basename(path.dirname(pathname));
这样同样能得到父文件夹的名称rain,而且path模块会自动处理不同系统的路径分隔符(Windows的\和类Unix的/),兼容性更好。
内容的提问来源于stack exchange,提问作者Sitharth
相关产品推荐
相关产品推荐

