В Windows вы можете выполнить следующие команды и проанализировать вывод:
vssadmin list volumes
Это дает:
C:\Windows\system32>vssadmin list volumes
vssadmin 1.1 - Volume Shadow Copy Service administrative command-line tool
(C) Copyright 2001-2013 Microsoft Corp.
Volume path: \\?\Volume{66c6160d-60cc-11e3-824b-806e6f6e6963}\
Volume name: \\?\Volume{66c6160d-60cc-11e3-824b-806e6f6e6963}\
Volume path: D:\
Volume name: \\?\Volume{66c6160f-60cc-11e3-824b-806e6f6e6963}\
Volume path: C:\
Volume name: \\?\Volume{66c6160e-60cc-11e3-824b-806e6f6e6963}\
Затем Выполните
fsutil volume diskfree
Что дает:
C:\Users\MC>fsutil volume diskfree \\?\Volume{66c6160e-60cc-11e3-824b-806e6f6e6963}\
Total # of free bytes : 47826694144
Total # of bytes : 255691059200
Total # of avail free bytes : 47826694144
Чтобы прочитать вывод процесса оболочки, вы можете прочитать стандартный вывод
string output = proc.StandardOutput.ReadToEnd();
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Да, я знаю, что это не совсем чистый способ, но это способ. Поскольку я не знаю API для доступа к информации такого низкого уровня.