V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Chuckle
V2EX  ›  Node.js

node 怎么获取剪切板中复制的文件信息

  •  
  •   Chuckle · 45 天前 · 1594 次点击
    这是一个创建于 45 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在写 vscode 插件,vscode.env.clipboard.readText()、clipboard.readSync()、pbpaste 这些内置、三方、命令都只能获取到文件名,剪切板内复制的文件应该有特殊的格式吧,怎么从里面获取到文件路径。
    6 条回复    2025-07-18 19:07:50 +08:00
    lisxour
        1
    lisxour  
       45 天前   ❤️ 1
    你看下哪些库或者 api 允许你获取不同格式的 data 咯,现在很多 api 都做了高级封装,基本就只有 text 、image 、rtf 能读写,https://www.nirsoft.net/utils/inside_clipboard.html
    magicdawn
        2
    magicdawn  
       45 天前   ❤️ 1
    macOS 可以用 require('simple-mac-clipboard').readText('public.file-url')
    see https://github.com/magicdawn/simple-mac-clipboard/

    更多的去 https://github.com/electron/electron/issues/9035 扒一下, 有更完整的实现的库(没写 electron 后没关注了), 都是 N-API addon, 可用于 node/electron 环境
    magicdawn
        3
    magicdawn  
       45 天前   ❤️ 1
    https://sindresorhus.com/pasteboard-viewer 可以 inspect 当前系统剪贴板状态, macOS
    Chuckle
        4
    Chuckle  
    OP
       45 天前
    剪切板真是乱,node 本身只能读个 text ,各个系统还得单独适配
    Chuckle
        5
    Chuckle  
    OP
       44 天前
    还有,ai ( cursor )解决不了这个问题,甚至幻觉非常严重,把复制粘贴和我的拖拽逻辑都搞混了,也不明白这些 cv api 的真正作用,被我问多了,直接 vscode.env as any 然后调了个不存在的方法
    Chuckle
        6
    Chuckle  
    OP
       44 天前
    vscode 本身也在避免和系统剪切板 api 打交道,vscode.env.clipboard 只提供了简单的读写文本两个函数,vsc 的文件树上的复制粘贴操作,也是内部命令驱动的,没有系统剪切板操作,所以不能和系统的文件管理器交互,但好在系统命令也能重写和触发,虽然微软的文档里没有标注这些系统命令,但打个 log 就知道参数了。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3942 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 10:17 · PVG 18:17 · LAX 03:17 · JFK 06:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.