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);
}
}
}
}
版权声明:本文标题:C# 获取移动硬盘和U盘信息 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1726821347a1085871.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论