2017-05-26 25 views
0

私はC#を使用してVisual Studio 2015で作業しています。 シリアルIDからConnected USBドライブの名前を取得する必要があります。 私は、WMIクラスのクエリを使用してみました:VolumeSerialNumberはTHER実際のシリアルIDがありません、しかし、C#シリアルIDでドライブ名を取得

ManagementObjectSearcher searcher = new 
      ManagementObjectSearcher("SELECT * FROM Win32_LogicalDisk"); 

     foreach (ManagementObject item in searcher.Get()) 
     { 
      if (item != null && item["VolumeSerialNumber"] != null && item["VolumeName"] != null) 
      { 
       if (item["VolumeSerialNumber"].ToString() == "50D76BF4") 
       { 
        Console.WriteLine($"{item["VolumeName"]} Is Connected and It's Letter is {item["Name"]}"); 
       } 
      }   
     }  

"のWin32_LogicalDisk SELECT * FROM"。ディスクがフォーマットされると変更されます。

答えて

1

私はそれを理解しました。

ハードドライブの名前と文字を idからreutrnsする方法を書いています。

public static string GetDriveLetterAndLabelFromID(string id) 
    { 
     ManagementClass devs = new ManagementClass(@"Win32_Diskdrive"); 
     { 
      ManagementObjectCollection moc = devs.GetInstances(); 
      foreach (ManagementObject mo in moc) 
      { 
       string a = (string)mo["SerialNumber"]; 
       if (a== id) 
       { 
        foreach (ManagementObject b in 
        mo.GetRelated("Win32_DiskPartition")) 
        { 
         foreach (ManagementBaseObject c in b.GetRelated("Win32_LogicalDisk")) 
        { 
         string result = $"HardDrive Name: {c["VolumeName"].ToString()}\nHardDrive Letter: {c["DeviceID"]}";       
         return result; 
        } 
        } 
       } 
      } 
     } 
     return null; 
    } 
:あなたは、これはコードでSystem.Management

をrefernceする必要が

関連する問題