Я пытаюсь определить объем свободного места на диске, используя следующий код:
ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_LogicalDisk WHERE DriveType =5");
foreach(ManagementObject mo in searcher.Get())
{
Console.WriteLine( "FreeSpace: "+mo["FreeSpace"].ToString());
Console.WriteLine("CapacitySpace: " + mo["Size"].ToString());
UInt64 usedspace = (UInt64)mo["Size"] - (UInt64)mo["FreeSpace"];
Console.WriteLine("UsedSpace: " + usedspace.ToString());
}
Запустив вышеуказанный код, я получаю следующий вывод:
Свободное пространство: 0
CapacitySpace: 301463552
Используемое пространство: 301463552
В идеале я хотел бы сообщить статистику Windows Explorer - XXX из YYY бесплатно. Обратите внимание, что Windows Explorer сообщает о 392 МБ, свободных от 702 МБ. Спасибо!
Обновление (1 апреля 09):
Похоже, что возможность определения свободного места на компакт-диске находится за пределами WMI и зависит от файловой системы вставленного диска. Мои тесты показывают, что Windows не будет отображать информацию о емкости для компакт-дисков в формате CDFS; однако он будет отображать информацию о емкости для компакт-дисков в формате UDF.
Также я нашел отличную встроенную утилиту для просмотра WMI, на которую ссылается здесь .