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();
}
확실하지 약간 향상
쉽게 통합 할 콜백 함수, 드라이브의 배열을 반환 for,하지만 우리는 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
으로 표시되어 있으므로 원하는 경우 해당 속성별로 필터링 할 수 있습니다.
이 모듈의 주요 이점은 모든 주요 운영 체제에서 작동한다는 것입니다.
는
https://github.com/resin-io-modules/drivelist를 참조 약간의 간단한 구현 :
는 일을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