Windows 列出nodejs中的分区

Windows 列出nodejs中的分区,windows,node.js,directory-browsing,Windows,Node.js,Directory Browsing,我想使用nodejs获得windows中的分区列表。fs.readdir适用于下面的任何文件夹或包括C:,但我不知道该给它什么,才能有“C:”、“D:”等分区列表 有人知道我应该使用什么吗?node.js中没有列出分区的api。一种解决方法是使用child_进程并执行wmic命令(或任何可以列出分区的命令) 我的2美分: 略微增强-一个带有回调的函数,便于集成,返回驱动器阵列: /** * Get windows drives * */ function get_win_drives(suc

我想使用nodejs获得windows中的分区列表。fs.readdir适用于下面的任何文件夹或包括C:,但我不知道该给它什么,才能有“C:”、“D:”等分区列表


有人知道我应该使用什么吗?

node.js中没有列出分区的api。一种解决方法是使用child_进程并执行
wmic
命令(或任何可以列出分区的命令)

我的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();
}

不确定它是否与您要查找的完全匹配,但我们构建了一个名为NodeJS的模块,该模块将返回一组连接的驱动器及其各自的装入点(例如:Windows中的装入字母):

不可移动驱动器标记为
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);
});

这更简单,输出更干净。
[
    {
        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
    }
]
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);
});