最近做一个小工具,  C# 对 移动硬盘的检测,

var arr = DriveInfo.GetDrives();

      得出的所有磁盘,发现对于移动硬盘,DriveType 不是 Removable 类型,而是 Fixed 枚举类型。

       C#检测移动硬盘,网上找了很久,没有现成正确的代码,只有自己想办法了。

     代码如下:

        public static List<string> GetListDisk()
{
List<string> lstDisk = new List<string>();
ManagementClass mgtCls = new ManagementClass("Win32_DiskDrive");
var disks = mgtCls.GetInstances();
foreach (ManagementObject mo in disks)
{
//if (mo.Properties["InterfaceType"].Value.ToString() != "SCSI"
// && mo.Properties["InterfaceType"].Value.ToString() != "USB"
// )
// continue; if (mo.Properties["MediaType"].Value == null ||
mo.Properties["MediaType"].Value.ToString() != "External hard disk media")
{
continue;
} //foreach (var prop in mo.Properties)
//{
// Console.WriteLine(prop.Name + "\t" + prop.Value);
//} foreach (ManagementObject diskPartition in mo.GetRelated("Win32_DiskPartition"))
{
foreach (ManagementBaseObject disk in diskPartition.GetRelated("Win32_LogicalDisk"))
{
lstDisk.Add(disk.Properties["Name"].Value.ToString());
}
} //Console.WriteLine("-------------------------------------------------------------------------------------------");
}
return lstDisk;
}

     注:通过找 Win32_DiskDrive,Win32_DiskPartition,Win32_LogicalDisk 对应的属性值的规律, 三个之间的关系 得出 移动硬盘的盘符。

     其他相关链接:C#取硬盘、CPU、主板、网卡的序号 ManagementObjectSearcher

C#检测获取移动硬盘盘符的更多相关文章

  1. 批处理bat命令--获取当前盘符和当前目录和上级目录

    批处理bat命令--获取当前盘符和当前目录和上级目录 批处理命令获取当前盘符和当前目录%~d0 是当前盘符%cd% 是当前目录可以用echo %cd%进行打印测试 以下例子是命令行编译Visual S ...

  2. C#获取驱动器盘符

    一.使用ManagementObjectSearcher类 static void Main(string[] args) { SelectQuery selectQuery = new Select ...

  3. 批处理学习之Bat命令——获取当前盘符、当前目录、上级目录

    命令 当前盘符:%~d0 当前路径:%cd% 当前执行命令行:%0 当前bat文件路径:%~dp0 当前bat文件短路径:%~sdp0 测试 下载testBatPath.bat测试文件,双击.bat运 ...

  4. 注册表与盘符(转victor888文章 )

    转自: http://blog.csdn.net/loulou_ff/article/details/3769479     写点东西,把这阶段的研究内容记录下来,同时也给研究相关内容的同志提供参考, ...

  5. Delphi 自动检测U盘插入、拔出及获取U盘盘符!

    http://qqhack8.blog.163.com/blog/static/1141479852012102133475/     Delphi 自动检测U盘插入.拔出及获取U盘盘符! u盘的 插 ...

  6. NSIS:获取硬盘中容量最大的分区盘符

    原文 NSIS:获取硬盘中容量最大的分区盘符 我们在安装一些在线视频软件比如迅雷看看时,会发现他们的安装程序会自动判断当前系统中容量最大的分区,以便在其中创建数据缓冲下载的文件夹,这种功能如果实现呢, ...

  7. C#通过盘符获取剩余空间

    public static long GetHardDiskSpace(string str_HardDiskName) { ; str_HardDiskName = str_HardDiskName ...

  8. windows7 能连接移动硬盘 无法显示盘符

    右键点我的电脑,管理里,点磁盘管理,看盘认到没,有时候认到了但是没给盘符,需要自己手动给一个

  9. ida和idr机制分析(盘符分配机制)

    # ida和idr机制分析 ida和idr的机制在我个人看来,是内核管理整数资源的一种方法.在内核中,许多地方都用到了该结构(例如class的id,disk的id),更直观的说,硬盘的sda到sdz的 ...

随机推荐

  1. Cosmos OpenSSD--greedy_ftl1.2.0(一)

    从主函数跳到ReqHandler,在ReqHandler内先初始化SSD--InitNandReset,然后建立映射表InitFtlMapTable void InitNandReset() { // ...

  2. Loadrunner Webservice接口性能测试脚本编写优化总结

    本文主要介绍使用Loadrunner Webservice接口性能测试脚本编写及优化总结. 1.Webservice协议脚本编写流程 下面介绍使用Loadrunner 11调用Webservice接口 ...

  3. svn的简介

    Svn(Subversion)是近年来崛起的版本管理工具,在当前的开源项目里(J2EE),几乎95%以上的项目都用到了SVN.Subversion项目的初衷是为了替换当年开源社区最为流行的版本控制软件 ...

  4. LeetCode 189. Rotate Array (旋转数组)

    Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the array  ...

  5. js 判断当前是什么浏览器

    function getExplorer() { var explorer = window.navigator.userAgent; //ie if (explorer.indexOf(" ...

  6. idea中的汉语注释出现乱码的解决方案

    日记 - idea中的汉语注释出现乱码的解决方案 我是个idea的忠实用户,新公司的项目都是用eclipse做的,通过svn拉下代码后发现,注释的内容里,中文内容都是乱码.问过项目负责人,说可能是GB ...

  7. 本表触发更新modifytime,跨表更新modifytime 触发器

    一.每行有改动,则触发更新modifytime SQL> create table test(id int, name varchar(10), crdate date, udate date) ...

  8. JS框架设计读书笔记之-函数

    这次写一些函数 1.模拟Object.keys方法 Object.keys = Object.keys || function(obj){ var a = []; // a[0],a[1]...分别赋 ...

  9. 我的第一个python web开发框架(15)——公司介绍编辑功能

    完成登录以后,就会进入后台管理系统的主界面,因为这个是小项目,所以导航菜单全部固化在HTML中,不能修改.一般后台还会有一个欢迎页或关键数据展示的主页面,小项目也没有多大的必要,所以登录后直接进入公司 ...

  10. Hawk-and-Chicken

    Hawk-and-Chicken Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...