private
List<
string
> _serialNumber =
new
List<
string
>();
public
void
matchDriveLetterWithSeral()
{
_serialNumber.Clear();
string
[] diskArray;
string
driveNumber;
var
searcher =
new
ManagementObjectSearcher(
"select * from Win32_LogicalDiskToPartition"
);
foreach
(ManagementObject dm
in
searcher.Get())
{
getValueInQuotes(dm[
"Dependent"
].ToString());
diskArray = getValueInQuotes(dm[
"Antecedent"
].ToString()).Split(
','
);
driveNumber = diskArray[0].Remove(0, 6).Trim();
var
disks =
new
ManagementObjectSearcher(
"select * from Win32_DiskDrive"
);
foreach
(ManagementObject disk
in
disks.Get())
{
if
(disk[
"Name"
].ToString()==(
"\\\\.\\PHYSICALDRIVE"
+driveNumber)&&disk[
"InterfaceType"
].ToString()==
"USB"
)
{
_serialNumber.Add(parseSerialFromDeviceID(disk[
"PNPDeviceID"
].ToString()));
}
}
}
}