You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从VS Code资源管理器面板获取选中文件列表?

获取VS Code资源管理器多选的文件Uri数组

问题描述

在VS Code资源管理器的上下文菜单中添加了自定义Print选项,但触发命令时,仅能获取右键点击位置的单个vscode.Uri,无法拿到所有选中文件的Uri列表。

解决方案

1. 修改package.json的菜单配置

在菜单定义中添加args参数,利用VS Code内置变量${selectedItems}传递所有选中项:

"menus": {
    "explorer/context": [
        {
            "command": "vsc-print.print",
            "group": "navigation",
            "when": "explorerResourceIsFolder || explorerResourceIsFile",
            "args": "${selectedItems}"
        }
    ]
}
  • when条件限制菜单仅在文件或文件夹节点上显示
  • ${selectedItems}会自动将资源管理器中所有选中的项作为参数传入命令

2. 更新命令处理函数

修改printCommand函数,接收选中项数组并提取其中的resourceUri:

function printCommand(selectedItems: any[]): PrintSession {
    logger.debug("Print command was invoked");
    // 从选中项中提取所有文件/文件夹的Uri
    const selectedUris = selectedItems.map(item => item.resourceUri);
    const printSession = new PrintSession(selectedUris, false);
    printSessions.set(printSession.sessionId, printSession);
    return printSession;
}

完成上述修改后,触发Print命令时就能获取所有选中文件的Uri数组,而非仅右键点击的单个项。


内容的提问来源于stack exchange,提问作者Peter Wone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 17:16:28