在用electronJS的时候出现的需求。只知道U盘的名称,但需要在这个U盘中进行文件操作,所以需要该u盘的盘符。查了几个Node.js的库都不太好用,比如说node-usb,就不能完成这个操作。
后面还是想到用node.js的 child_process 功能,开启运行时执行wimc命令,返回内容字符串,再对字符串进行处理,取到盘符。
主要命令:
wmic logicaldisk where VolumeName="XXX" get DeiceID
先看看在cmd中,wmic命令执行后的输出格式。
C:\Users\123>wmic logicaldisk where VolumeName="XXX" get DeviceID
DeviceID
G:
再用node.js执行该命令,处理输出的字符串。
const exec = require('child_process').exec;
let wmicResult = null;
exec('wmic logicaldisk where VolumeName="XXX" get DeviceID', function (err, stdout, stderr) {
if (err || stderr) {
console.log("root path open failed" + err + stderr);
layer.msg('未链接到USB', {
icon: 0
});
return;
}
wmicResult = stdout;
wmicResult = wmicResult.replace(/\s+/g, "");
wmicResult = wmicResult.replace("DeviceID", "");
// wmicResult = 'G:K:F:';
let result = wmicResult.split(':');
console.log(result);
});
最后得到的结果
G
这样就获得了盘符,可以愉快的对该usb内的内容进行文件读写操作啦。