美文网首页
Electron读取clipboard中中文名称文件

Electron读取clipboard中中文名称文件

作者: charles0427 | 来源:发表于2018-05-24 11:55 被阅读751次

    Electron在clipboard读取文件这块的API不够清晰,之前针对windows和mac分别采用以下两种方法:

    // windows
    const rawFilePath = clipboard.read('FileNameW');
    let filePath = rawFilePath.replace(new RegExp(String.fromCharCode(0), 'g'), '');
    
    // mac
    filePath = clipboard.read('public.file-url').replace('file://', '');
    

    mac没有什么问题,windows在读取含有中文名称时,路径格式会有问题。解决方法参考issue:

    https://github.com/electron/electron/issues/12141

    const rawFilePath = clipboard.readBuffer('FileNameW').toString('ucs2');
    let filePath = rawFilePath.replace(new RegExp(String.fromCharCode(0), 'g'), '');
    

    注意,rawFilePath默认最后会有\u0000,需要将其剔除;

    相关文章

      网友评论

          本文标题:Electron读取clipboard中中文名称文件

          本文链接:https://www.haomeiwen.com/subject/hfzjjftx.html