Answer a question

I am trying to develop an extension for VSCode and I need to search for the exact file path where my extension is saved. I've tried this code:

var text;

const directoryPath = path.join(Os.homedir(), '.vscode/extensions');
fs.readdir(directoryPath, function (err, files) {
    if (err) {
        y2.appendLine('Unable to scan directory: ' + err);
    }
    for (let i=0;i<files.length;i++){
        if (files[i].startsWith("MY_EXTENSION")){
            text = files[i];
            y2.appendLine(text);
            break;
        }
    }
});
y2.appendLine(text);

y2 is only an output channel I added. The outcome of this code is:

undefined
MY_EXTENSION

If I take out the second y2.appendLine(text) I receive only MY_EXTENSION but I don't get how to make text global or how to modify the value of the global variable text inside readdir.

I also don't understand why it first executes y2.appendLine(text) and then readdir.

It is really important and I would be grateful to have your help!

Answers

For the path to your extension, use the context object and its properties:

extensionPath

The absolute file path of the directory containing the extension. Shorthand notation for ExtensionContext.extensionUri.fsPath (independent of the uri scheme).

extensionUri

The uri of the directory containing the extension.

From ExtensionContext. If it is just for the purpose of storage, see @mausworks's answer about globalStorage or storagePath, ets.

Logo

开发云社区提供前沿行业资讯和优质的学习知识,同时提供优质稳定、价格优惠的云主机、数据库、网络、云储存等云服务产品

更多推荐