【问题标题】:vscode.workspace.workspaceFolders Returning Error. Vscode extensionsvscode.workspace.workspaceFolders 返回错误。 Vscode 扩展
【发布时间】:2020-06-13 01:05:21
【问题描述】:

当我遇到一个我不知道如何修复的错误时,我正在为 vscode 编写一个扩展程序。我正在尝试制作一个脚本,在该脚本中根据一些输入创建一个文件,但是当我尝试获取新文件的路径时,它返回一个错误!代码如下:

let command3 = vscode.commands.registerCommand('command-bot.createFile', () => {
    var fileName = vscode.window.showInputBox({
        placeHolder: "Name your file"
    });
    var fileExt = vscode.window.showInputBox({
        placeHolder: "What is the extention example: .py or .html"
    });
    const folderPath = vscode.workspace.workspaceFolders[0].uri.toString().split(":")[1];
            //The code above caused the error! Error: Object is possibly 'undefined'
});

【问题讨论】:

    标签: typescript vscode-extensions


    【解决方案1】:

    workspaceFolders 仅在用户打开工作区时可用,但在用户仅打开文件夹时不可用。

    所以你可以尝试使用类似于下面的东西,

            let path: string;
            if (!workspace.workspaceFolders) {
                path = workspace.rootPath;
            } else {
                let root: WorkspaceFolder;
                if (workspace.workspaceFolders.length === 1) {
                    root = workspace.workspaceFolders[0];
                } else {
                    root = workspace.getWorkspaceFolder(resource);
                }
    
                path = root.uri.fsPath;
            }
    

    https://github.com/vscode-restructuredtext/vscode-restructuredtext/blob/128.0.0/src/features/utils/configuration.ts#L154

    【讨论】:

    • 谢谢!这适用于代码。但是我能问你 var 资源代表什么吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-26
    • 2022-07-22
    • 2018-08-10
    相关资源
    最近更新 更多