Electron读取clipboard中中文名称文件

2018-05-24  本文已影响751人  charles0427

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,需要将其剔除;

上一篇 下一篇

猜你喜欢

热点阅读