首页 > 解决方案 > Visual Studio 代码扩展 - 获取非文本文件的活动选项卡数据

问题描述

我有一个扩展名,我在其中查询当前活动选项卡文件的源路径。

对于文本文件,以下内容非常有用:

const activeEditor: TextEditor = window.activeTextEditor;
if (activeEditor && activeEditor.document && activeEditor.document.fileName) {
    return activeEditor.document.fileName;
}

问题是,当文本编辑器中的活动文件是非文本文件时,这不起作用,例如图像文件,如.jpg.

对于这些类型的文件,window.activeTextEditorundefined. 此外,当我尝试运行以下代码时:

const uri = Uri.file(<path_to_binary_file>);
workspace.openTextDocument(uri);

我收到以下错误:"cannot open <path_to_file>. Detail: File seems to be binary and cannot be opened as text",并且我没有看到任何与openTextDocument处理非文本文件类似的 API。

是否有任何直接的方法可以在不使用commands.executeCommand('workbench.action.files.copyPathOfActiveFile')和各种剪贴板操作的情况下获取这些数据?

标签: visual-studio-codevscode-extensions

解决方案


这似乎是 VS 代码中一个已知的未解决问题。以下Github 问题讨论了它。


推荐阅读