2013-10-04 3 views
4

У меня есть программа, которая сообщает мне все жесткие диски/usb, но это только говорит мне буква диска, а не имя. Вот что у меня есть:Как получить букву и имя диска (метка тома)

DriveInfo[] drives = DriveInfo.GetDrives(); 
Console.WriteLine("Detected Drives: "); 
for(int i = 0; i < drives.Count(); i++) 
{ 
    Console.WriteLine("Drive " + i + ": " + drives[i].Name); 
} 

return drives; 

и это печатает:

Drive 0: C:\ 
Drive 1: E:\ 

, но я хочу, чтобы имя, такое как

Drive 0: C:\ Local disk 
Drive 1: E:\ Kingston USB 

как я могу получить это?

+2

@Saravana, связанный вопрос не принятым ответ, также самый высокий проголосовавший, возможно, не подходит для OP – Habib

ответ

10

Вы ищете VolumeLabel собственности:

http://msdn.microsoft.com/en-us/library/system.io.driveinfo.volumelabel.aspx

Пример:

Console.WriteLine(drives[i].VolumeLabel); 
+2

+1. Поскольку он отвечает на заданный вопрос, скорее всего, это не то, что ищет OP (ожидаемый результат, похоже, ищет информацию о физическом диске, частично покрытую [DriveInfo.DriveType] (http://msdn.microsoft.com/) en-us/library/system.io.driveinfo.drivetype.aspx)) –

3

Попробуйте

try 
     { 
      DriveInfo[] myDrives = DriveInfo.GetDrives(); 

      foreach (DriveInfo drive in myDrives) 
      { 
       Console.WriteLine("Drive:" + drive.Name); 
       Console.WriteLine("Drive Type:" + drive.DriveType); 

       if (drive.IsReady == true) 
       { 
        Console.WriteLine("Vol Label:" + drive.VolumeLabel); 
        Console.WriteLine("File System: " + drive.DriveFormat); 

       } 
      } 
     } 
     catch (Exception) 
     { 

      throw; 
     } 
Смежные вопросы