【问题标题】:When I "copy" a file where do I retrieve the file name and path?当我“复制”一个文件时,我在哪里检索文件名和路径?
【发布时间】:2021-09-07 08:56:38
【问题描述】:

我目前正在开发一个react/electron 应用程序,我希望能够使用ctrl+c 或右键单击复制来复制应用程序外部的文件(可以是任何文件类型)。

如何在我的应用程序中检索该文件的名称和路径?我试过navigator.clipboard.readText().read() 都没有运气。

【问题讨论】:

    标签: javascript reactjs electron navigator clipboarddata


    【解决方案1】:

    不幸的是,在 Electron 中,剪贴板是 still highly platform-dependant,需要不同的代码,具体取决于您运行的平台。这是 单个文件 的 sn-p 帮助您入门。如果您需要访问多个文件,请参阅this snippet

    const { clipboard } = require('electron')
    
    let text = null
    if(process.platform === 'darwin') {        // MacOS
      text = clipboard.read('public.file-url')
    } else {                                   // Windows
      text = clipboard.readBuffer('FileNameW').toString('ucs2')
    }                                          // TODO: Linux
    console.log(text);
    

    根据您的演示文稿,您可能需要转换为人类可读的格式(例如 file:///C:\ 等)

    【讨论】:

    • 谢谢!这正是我所需要的。我尝试了 windows 的多文件方法,它给了我所有的 URL,但是在某种奇怪的字符串中,带有各种额外的空格和字符。但我现在需要做的就是想办法解析它。
    • 关于ucs2 编码:stackoverflow.com/questions/8715980/…。关于完全摆脱 URI 格式(例如 Windows 上的可读性)npmjs.com/package/file-uri-to-path.
    猜你喜欢
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多