Как в Node получить имена локальных дисков?

Как в Node получить локальные диски?

Достаточно будет их наименования, например: ["C", "D"].


Ответы (1 шт):

Автор решения: RTK

В первую очередь нужно сказать, что такое понятие как "имена локальных дисков" есть только в Windows окружении.

Я предлагаю такой вариант:

const childProcess = require('child_process');

function getLocalDiskNames() {
  const buffer = childProcess.execSync('wmic logicaldisk get Caption  /format:list').toString();
  const lines = buffer.split('\r\r\n');

  const disks = [];

  for (const line of lines) {
    if(!line) {
      continue;
    }

    const lineData = line.split('=');
    disks.push(lineData[1]);
  }

  return disks;
}

console.log(getLocalDiskNames()); // [ 'C:', 'E:', 'F:' ]

По сути просто исполняем команду wmic logicaldisk get Caption /format:list и "чистим" результат.

Если нужно больше информации (объем и т.д.), то можно изменить команду на

wmic logicaldisk get Caption,FreeSpace,Size,VolumeSerialNumber,Description  /format:list

и немного подправить парсинг.

→ Ссылка