我可以使用node.js找到服务器端硬盘驱动器号吗?

时间:2015-01-06 03:36:29

标签: node.js

有没有办法使用node.js找到服务器端硬盘名称,如C:,D:,E:等?

3 个答案:

答案 0 :(得分:1)

在Windows中,您可以使用此命令wmic logicaldisk get caption

在Nodejs中,您可以为此cammand生成一个新进程。

 var exec = require('child_process').exec;
    function showLetter(callback) {
        exec('wmic logicaldisk get caption', function(err, stdout, stderr) {
            if(err || stderr) {
                console.log("root path open failed" + err + stderr);
                return;
            }
            callback(stdout);
        }
    }

答案 1 :(得分:0)

我们构建了一个名为drivelist的模块,并且适用于所有主要操作系统。例如,在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属性区分它们。

答案 2 :(得分:0)

Node.js方式:

import * as path from 'path';
const cwdOSRoot = path.parse(process.cwd()).root;
const fileOSRoot = path.parse(__dirname).root;

重要的是,一个会为您找到当前工作目录的字母,另一个会为您包含该代码的文件所在的驱动器的驱动器字母。您可以使用任何绝对路径替换process.cwd()__dirname来获取驱动器号。

第二种方式:

import * as os from 'os';
import * as path from 'path';
const cwdOSRoot = os.platform() === 'win32' ? `${process.cwd().split(path.sep)[0]}:` : '/';
const fileOSRoot = os.platform() === 'win32' ? `${__dirname.split(path.sep)[0]}:` : '/';

然后仅使用path.joinpath.normalizepath.resolve等。此代码适用于任何操作系统。