Boa noite cara, não sei se vc ja consegui resolver seu problema, vi agora sua pergunta e a tempos atras tinha feito exatamente o que voce esta pedindo, vou tentar detalhar ao máximo ok...
//biblioteca necessaria para trabalhar nessa parte
using System.IO;
//A classe DriveInfo provê a abstração necessaria para lidar com os Drives do computador //Nessa classe você encontrará metodos para pegar o espaço livre de cada drive do computador //você pode ter informação tambem sobre o espaço total de de cada drive e etc... //para pegar os drives do compuador basta a chamada ao metodo estatico GetDrives() //da classe, muito simples
//laço foreach que é especifico para percorrer coleções de dados
foreach (DriveInfo d in drives) { //Console.WriteLine ou MessageBox.Show se voce quiser usar um formulario //preferi deixar aqui o Console.WriteLine
Console.WriteLine("Nome: " + d.Name); //pega o nome do drive Console.WriteLine("Tipo: " + d.DriveType.ToString()); //pega o tipo do drive Console.WriteLine("Raiz: " + d.RootDirectory.FullName); //pega o diretorio raiz do drive Console.WriteLine("-----------------------------------------------------"); } Console.ReadLine();
PS: A listagem para drives de DVD, aponta o tipo como CDROM PS2: Obter o espaço livre de drives de DVD e CD geram uma exceção caso não haja nenhuma midia no drive.