visual-studio-code - Visual Studio 代码扩展 - 获取非文本文件的活动选项卡数据
问题描述
我有一个扩展名,我在其中查询当前活动选项卡文件的源路径。
对于文本文件,以下内容非常有用:
const activeEditor: TextEditor = window.activeTextEditor;
if (activeEditor && activeEditor.document && activeEditor.document.fileName) {
return activeEditor.document.fileName;
}
问题是,当文本编辑器中的活动文件是非文本文件时,这不起作用,例如图像文件,如.jpg
.
对于这些类型的文件,window.activeTextEditor
是undefined
. 此外,当我尝试运行以下代码时:
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')
和各种剪贴板操作的情况下获取这些数据?
解决方案
这似乎是 VS 代码中一个已知的未解决问题。以下Github 问题讨论了它。
推荐阅读
- python - Raspberry Pi 在引导期间关闭
- kubernetes - EKS:使用带有 eksctl 的集群配置 yaml 文件创建新集群,但节点无法加入集群
- javascript - 在浏览器环境中使用 UMD 模块
- python - 无法编辑模块导入的字典
- docker - 在 Dokku 中重建容器会导致错误
- kotlin - 使用 Redis Streams 和 Spring Data 获取待处理消息
- node.js - 如何在猫鼬中使用一组值查询一组对象?
- excel - 找到两支球队,即使他们都退役了?
- swift - SWIFT 写入 plist 未更新
- javascript - 通过将数组与其他数组键进行比较来更改数组的索引