我想使用nodejs獲取windows中的分區列表。 fs.readdir可以正常工作,適用於任何下面的文件夾或包含C:的文件夾,但是我不知道應該如何讓分區列表包含「C:」,「D:」等等。nodejs中的列表分區
任何人都知道我應該使用什麼?
我想使用nodejs獲取windows中的分區列表。 fs.readdir可以正常工作,適用於任何下面的文件夾或包含C:的文件夾,但是我不知道應該如何讓分區列表包含「C:」,「D:」等等。nodejs中的列表分區
任何人都知道我應該使用什麼?
node.js中沒有api列出分區。一種解決方法是使用child_process並執行wmic
命令(或任何可以列出分區的命令)。
var spawn = require('child_process').spawn,
list = spawn('cmd');
list.stdout.on('data', function (data) {
console.log('stdout: ' + data);
});
list.stderr.on('data', function (data) {
console.log('stderr: ' + data);
});
list.on('exit', function (code) {
console.log('child process exited with code ' + code);
});
list.stdin.write('wmic logicaldisk get name\n');
list.stdin.end();
我的2美分: - :如果匹配你尋找什麼
/**
* Get windows drives
* */
function get_win_drives(success_cb,error_cb){
var stdout = '';
var spawn = require('child_process').spawn,
list = spawn('cmd');
list.stdout.on('data', function (data) {
stdout += data;
});
list.stderr.on('data', function (data) {
console.log('stderr: ' + data);
});
list.on('exit', function (code) {
if (code == 0) {
console.log(stdout);
var data = stdout.split('\r\n');
data = data.splice(4,data.length - 7);
data = data.map(Function.prototype.call, String.prototype.trim);
success_cb(data);
} else {
console.log('child process exited with code ' + code);
error_cb();
}
});
list.stdin.write('wmic logicaldisk get caption\n');
list.stdin.end();
}
不知道
略微增強與回調,易於整合的功能,返回驅動器陣列但是我們構建了一個名爲drivelist的NodeJS模塊,該模塊將返回具有各自安裝點的連接驅動器陣列(例如:Windows中的掛載字母):
[
{
device: '\\\\.\\PHYSICALDRIVE0',
description: 'WDC WD10JPVX-75JC3T0',
size: '1000 GB'
mountpoint: 'C:',
system: true
},
{
device: '\\\\.\\PHYSICALDRIVE1',
description: 'Generic STORAGE DEVICE USB Device',
size: '15 GB'
mountpoint: 'D:',
system: false
}
]
不可移動驅動器被標記爲system: false
,您可以通過該屬性進行過濾,如果這是您正在尋找的。
該模塊的主要優勢在於它適用於所有主流操作系統。
一點點簡單的實現:
const exec = require('child_process').exec;
exec('wmic logicaldisk get name', (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
console.log('stdout ', stdout);
console.log('stderr ', stderr);
});
它的工作,感謝一噸! – user1703467