vscode 的 extensions 插件開發時用?vscode.window.activeTextEditor?.document.uri 獲取不到編輯器打開的圖片路徑,文檔路徑可以獲取到。
個人猜測因為圖片不能編輯,所以沒有?activeTextEditor 屬性吧。
解決辦法:巧用右鍵獲取路徑和相對的路徑的 command
let fileUri = vscode.window.activeTextEditor?.document.uriif (!fileUri) {await vscode.commands.executeCommand('copyFilePath');const copyFilePath = await vscode.env.clipboard.readText()if (!copyFilePath) returnfileUri = vscode.Uri.file(copyFilePath)}const fileName = fileUri.fsPath
vscode.commands.executeCommand('copyFilePath')
相當于 vscode 右鍵文件復制路徑
vscode.commands.executeCommand('copyRelativeFilePath')
相當于 vscode 右鍵文件復制相對路徑
調用后會將路徑復制到粘貼板中,然后
await vscode.env.clipboard.readText()
獲取粘貼板數據即可獲得圖片的路徑了。