Я пытаюсь создать файл как часть одной из команд в моем расширении и не могу понять это правильно.
let wsedit = new vscode.WorkspaceEdit();
const file_path = vscode.Uri.file(value + '/' + value + '.md');
vscode.window.showInformationMessage(file_path.toString());
wsedit.createFile(file_path, {ignoreIfExists: true});
vscode.workspace.applyEdit(wsedit);
vscode.window.showInformationMessage('Created a new file: ' value + '/' + value + '.md);
value
- это строка, введенная пользователем. Код выполняется, но, насколько я могу судить, файл не создается. Как правильно создать файл?
Похоже, что vscode.Uri
не поддерживает относительные пути (здесь - соответствующая проблема). С учетом сказанного вы должны использовать абсолютный путь. Следующий фрагмент должен работать (протестирован на Windows с vscode v1.30.0)
const wsedit = new vscode.WorkspaceEdit();
const wsPath = vscode.workspace.workspaceFolders[0].uri.fsPath; // gets the path of the first workspace folder
const filePath = vscode.Uri.file(wsPath + '/hello/world.md');
vscode.window.showInformationMessage(filePath.toString());
wsedit.createFile(filePath, { ignoreIfExists: true });
vscode.workspace.applyEdit(wsedit);
vscode.window.showInformationMessage('Created a new file: hello/world.md');
на const wsedit = new vscode.WorkspaceEdit();
? Может быть, вы можете просто добавить мои строки два и три в свой фрагмент и попробовать. (Между прочим. Я использовал машинописный текст)
Я смог добиться этого, используя форму этот ответ. После получения объекта я проверяю, не является ли он неопределенным.
Я получаю сообщение об ошибке в вашей первой строке, в котором говорится: «Возможно, объект не определен». Есть предположения?