2011-08-30 18 views
7

Hola necesito para detectar todas las unidades de medios extraíbles ia menú desplegable en C#obtener la lista de las unidades de medios extraíbles en C#

será apreciado Cualquier ayuda

Gracias

+0

posible duplicado de [GetDriveType en C#? o averiguar si mi disco es extraíble?] (http://stackoverflow.com/questions/623254/getdrivetype-in-c-or-find-out-if-my-drive-is-removable) –

Respuesta

11

Puede usar el DriveInfo type para recuperar una lista de las unidades. Es necesario comprobar la DriveType property (enum)

var drives = DriveInfo.GetDrives(); 
foreach (var drive in drives) 
{ 
    if (drive.DriveType == DriveType.Removable) 
    { 
     Console.WriteLine(drive.Name); 
    } 
} 

También puede utilizar LINQ a objetos para consultar las unidades:

var drives = from drive in DriveInfo.GetDrives() 
      where drive.DriveType == DriveType.Removable 
      select drive; 

foreach(var drive in drives) 
{ 
    Console.WriteLine(drive.Name); 
} 

Al igual que el @TheCodeKing menciona también se puede utilizar WMI para consultar la unidad información.

Por ejemplo, se puede consultar para memorias USB de la siguiente manera:

ManagementObjectCollection drives = new ManagementObjectSearcher(
    "SELECT Caption, DeviceID FROM Win32_DiskDrive WHERE InterfaceType='USB'" 
).Get(); 

añadir una referencia a la asamblea System.Management si se va a utilizar WMI.

Si desea llenar un ComboBox en una aplicación de Windows Forms con estos datos, debe vincular los resultados al control ComboBox.

Por ejemplo:

private void Form1_Load(object sender, EventArgs e) 
{ 
    var drives = from drive in DriveInfo.GetDrives() 
       where drive.DriveType == DriveType.Removable 
       select drive; 

    comboBox1.DataSource = drives.ToList(); 
} 

Para recapitular:

  1. Añadir un control ComboBox al formulario Windows (arrastrar & dejarlo caer en el formulario de la caja de herramientas)
  2. Consulta las unidades extraíbles .
  3. Enlaza los resultados al ComboBox.
+2

También tenga en cuenta que si Si desea incluir unidades de CD-Rom, no se consideran 'Extraíbles' en la enumeración 'DriveType'. También es posible que desee comprobar '|| drive.DriveType == DriveType.CDRom' –

+0

gracias a todos por su ayuda, pero podría alguien decirme cómo agregar un menú desplegable en mi aplicación C# winform y luego llenarlo con las etiquetas y letras de los controladores – shandoosheri

+0

Actualicé mi respuesta para mostrar cómo puede vincular estos resultados a un control ComboBox en una aplicación de Windows Forms. –

1

Tiene que utilizar WMI para esto, consulte este link para obtener información y ejemplos.

+0

+1 por mencionar WMI. Aquí hay un ejemplo que usa WMI para consultar información de la unidad: http://www.geekpedia.com/tutorial233_Getting-Disk-Drive-Information-using-WMI-and-Csharp.html –

Cuestiones relacionadas