您的位置:首页 > 其它

判断磁盘是否是USB连接的另一种方法

2012-02-12 16:28 459 查看
读取出本地电脑上的usb盘,除了前面说的一个方法外(/article/1419564.html

还有一种方法,如下:

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();
        }

结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: