admin管理员组

文章数量:1531659

获取移动硬盘和U盘信息

1.首先引入名称空间 System.Management
2.示例代码如下

using System;
using System.Management;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            getExternalDisk();
            Console.ReadKey();

        }

        public static void getExternalDisk() {
            ManagementClass mgtCls = new ManagementClass("Win32_DiskDrive");
            var disks = mgtCls.GetInstances();
            foreach (ManagementObject mo in disks)
            {
                if (mo.Properties["MediaType"].Value != null &&
                  !(mo.Properties["MediaType"].Value.ToString() == "Fixed hard disk media"))
                {
                    foreach (ManagementObject diskPartition in mo.GetRelated("Win32_DiskPartition"))
                    {
                        foreach (ManagementBaseObject disk in diskPartition.GetRelated("Win32_LogicalDisk"))
                        {
                            Console.WriteLine(disk.Properties["Name"].Value.ToString() + "\\");
                            Console.WriteLine("产品名称:" + mo.Properties["Caption"].Value.ToString());
                            Console.WriteLine("总容量:" + mo.Properties["Size"].Value.ToString());
                            Console.WriteLine(mo.Properties["PNPDeviceID"].Value.ToString());
                        }
                    }
                }
            }
        }
    }
}

打印输出:

原理:

本地的C盘和D盘的MediaType属性值为Fixed hard disk media 固定硬盘介质
而像移动硬盘MediaType属性值为External hard disk media 外置硬盘介质
U盘则区别更大MediaType属性值为Removable Media 可移动介质

如果只想知道插入U盘的路径只需要使用如下方法:

原理很简单因为U盘的设备类型是Removable,但是这种方法无法区分可移动硬盘和本地硬盘

using System;
using System.IO;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            getUSBPath();
            Console.ReadKey();

        }

        public static void getUSBPath() {
            DriveInfo[] drives = DriveInfo.GetDrives();

            foreach (DriveInfo drive in drives)
            {
                if (drive.DriveType == DriveType.Removable)
                {
                    Console.WriteLine(drive.Name);
                }
            }
        }
     }

本文标签: 移动硬盘信息