2011-05-24 33 views

Respuesta

11

Sí, esto es posible. Consulta el DriveFormat property del System.IO.DriveInfo class.

public static void Main() 
{ 
    DriveInfo[] allDrives = DriveInfo.GetDrives(); 

    foreach (DriveInfo d in allDrives) 
    { 
     Console.WriteLine("Drive {0}", d.Name); 
     Console.WriteLine("Type: {0}", d.DriveFormat); 
    } 
} 
+0

¡Gracias, esto es todo! – Simon

+0

Creo que quisiste decir 'd.DriveFormat' ¿verdad? – SepehrM

+0

@Sepehr Sí, gracias. No sé qué pasó con la muestra del código. No quería tener un montón de espacios al azar, ni me refería a "Tipo de archivo". –

2

Creo que también puede ser interesante en GetVolumeInformation función.

[EDIT]
También puede utilizar WMI objetos para la obtención de dicha información, por ejemplo:

using System.Management; 
..... 
ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\""); 
disk.Get(); 
MessageBox.Show(disk["FreeSpace"] + " bytes"); // Displays disk free space 
MessageBox.Show(disk["VolumeName"].ToString()); // Displays disk label 
MessageBox.Show(disk["FileSystem"].ToString()); // Displays File system type 

Para una lista de todas las propiedades de avaliable Win32_LogicalDisk clase ver here.

+0

La función 'DriveInfo' es una envoltura administrada alrededor de esta misma función. Eso significa que hay muy pocas razones para P/Invocar y llamar a la función usted mismo. –

+0

@Cody Gray: Sí, tiene razón, pero OP puede querer leer el número de serie del disco, hasta donde sé que esto no es posible con DriveInfo –

Cuestiones relacionadas