string deviceId = "";
ManagementObjectSearcher mc1 = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDriveToDiskPartition");
foreach (ManagementObject mo in mc1.Get())
{
//System.Console.WriteLine(mo["Dependent"].ToString() + mo["Antecedent"].ToString());
//Win32_DiskDrive
using(ManagementObject o1 = new ManagementObject(mo["Antecedent"].ToString()))
{
o1.Get();
if(o1["InterfaceType"].ToString().ToUpper() == "USB")
{
//Win32_DiskPartition
using(ManagementObject o2 = new ManagementObject(mo["Dependent"].ToString()))
{
o2.Get();
//System.Console.WriteLine(o["DeviceID"]);
deviceId = o2["DeviceID"].ToString();
break;
}
}
}
}
if(deviceId == "")
{
System.Console.WriteLine("No USB interface disk has been found.");
}
else
{
ManagementObjectSearcher mc2 = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalDiskToPartition");
foreach (ManagementObject mo in mc2.Get())
{
System.Console.WriteLine(mo["Dependent"].ToString() + mo["Antecedent"].ToString());
//Win32_DiskPartition
using(ManagementObject o1 = new ManagementObject(mo["Antecedent"].ToString()))
{
o1.Get();
if(o1["DeviceID"].ToString() == deviceId)
{
//Win32_LogicalDisk
using(ManagementObject o2 = new ManagementObject(mo["Dependent"].ToString()))
{
o2.Get();
System.Console.WriteLine("USB drive found:" + o2["DeviceID"]);
}
}
}
}
}
ManagementObjectSearcher mc1 = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDriveToDiskPartition");
foreach (ManagementObject mo in mc1.Get())
{
//System.Console.WriteLine(mo["Dependent"].ToString() + mo["Antecedent"].ToString());
//Win32_DiskDrive
using(ManagementObject o1 = new ManagementObject(mo["Antecedent"].ToString()))
{
o1.Get();
if(o1["InterfaceType"].ToString().ToUpper() == "USB")
{
//Win32_DiskPartition
using(ManagementObject o2 = new ManagementObject(mo["Dependent"].ToString()))
{
o2.Get();
//System.Console.WriteLine(o["DeviceID"]);
deviceId = o2["DeviceID"].ToString();
break;
}
}
}
}
if(deviceId == "")
{
System.Console.WriteLine("No USB interface disk has been found.");
}
else
{
ManagementObjectSearcher mc2 = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalDiskToPartition");
foreach (ManagementObject mo in mc2.Get())
{
System.Console.WriteLine(mo["Dependent"].ToString() + mo["Antecedent"].ToString());
//Win32_DiskPartition
using(ManagementObject o1 = new ManagementObject(mo["Antecedent"].ToString()))
{
o1.Get();
if(o1["DeviceID"].ToString() == deviceId)
{
//Win32_LogicalDisk
using(ManagementObject o2 = new ManagementObject(mo["Dependent"].ToString()))
{
o2.Get();
System.Console.WriteLine("USB drive found:" + o2["DeviceID"]);
}
}
}
}
}