读取出本地电脑上的usb盘,除了前面说的一个方法外(http://blog.youkuaiyun.com/yysyangyangyangshan/article/details/7101961)
还有一种方法,如下:
public static List<string> GetUsbDisk()
{
List<string> usbDiskNameList = new List<string>();
try
{
ManagementObjectCollection drives = new ManagementObjectSearcher("select * from Win32_DiskDrive where interfaceType = 'USB'").Get();
foreach (ManagementObject drive in drives)
{
ManagementObjectCollection partitions = new ManagementObjectSearcher("ASSOCIATORS OF {Win32_DiskDrive.DeviceID='" + drive["DeviceID"] + "'} WHERE AssocClass = Win32_DiskDriveToDiskPartition").Get();
foreach (ManagementObject partition in partitions)
{
ManagementObjectCollection volumeLetters = new ManagementObjectSearcher("ASSOCIATORS OF {Win32_DiskPartition.DeviceID='" + partition["DeviceID"] + "'} WHERE AssocClass = Win32_LogicalDiskToPartition").Get();
foreach (ManagementObject volumeLette in volumeLetters)
{
string usbDiskName = string.Format(@"{0}\", volumeLette["Name"].ToString());
usbDiskNameList.Add(usbDiskName);
}
}
}
}
catch
{
}
return usbDiskNameList;
}
调用
static void Main(string[] args)
{
List<string> usbDiskNameList = GetUsbDisk();
int count = usbDiskNameList.Count;
Console.WriteLine("USB磁盘:");
for (int i = 0; i < count; i++)
{
Console.WriteLine(usbDiskNameList[i]);
}
Console.ReadLine();
}
结果: