C# DriveInfo 获取系统所有驱动器及类型
利用 System.IO 命名空间下的 DriveInfo 类及其 GetDrives() 静态方法,开发者可以一行代码获取系统中所有逻辑驱动器的实例数组。通过迭代该数组并访问属性,即可快速识别如硬盘(Fixed)、CD-ROM(Removable)等不同类型的存储设备。
核心实现原理
DriveInfo.GetDrives() 是一个静态方法,它会查询当前操作系统的所有已挂载驱动器,并返回一个 DriveInfo[] 数组。这是执行遍历操作的前提。我们需要关注两个核心属性:
Name:获取驱动器的根目录路径(例如 "C:\\")。DriveType:获取驱动器的类型枚举值,常见包括 Fixed(固定磁盘)、Removable(可移动介质)、CDRom 等。
详细操作步骤
第1步:添加必要的命名空间引用
在使用 DriveInfo 之前,必须确保代码文件顶部包含 System.IO 命名空间的引入,否则编译器将无法识别该类。
using System;
using System.IO;
第2步:调用静态方法获取驱动器列表
直接调用 DriveInfo.GetDrives()。此操作是只读的且通常很快,无需额外的权限检查(除非涉及非常受限的系统环境),但应留意它不会抛出因权限不足导致的错误,而是静默忽略不可访问的驱动器。
// 获取所有驱动器信息的数组
DriveInfo[] drives = DriveInfo.GetDrives();
// 检查是否获取到了数据
if (drives == null || drives.Length == 0)
{
Console.WriteLine("未检测到任何驱动器。");
return;
}
第3步:遍历并输出详细信息
使用 foreach 语句遍历上一步得到的数组。对于每一个 DriveInfo 实例,格式化输出其名称和类型。
foreach (DriveInfo drive in drives)
{
// 输出驱动器盘符,如 C:
Console.WriteLine("Drive: {0}", drive.Name);
// 输出驱动器类型,如 Fixed, Removable
Console.WriteLine("Type: {0}", drive.DriveType);
}
注意事项与排错
在实际应用中,如果驱动器正在被其他进程独占打开,或者某些虚拟驱动器状态异常,DriveInfo 的部分属性(如 TotalSize)可能会引发异常。因此,仅读取 Name 和 DriveType 这种基础元数据是比较安全的做法。如果需要更详细的容量信息,建议将读取操作包裹在 try-catch 块中。
总结
通过简单的几行代码,我们就能完整列出操作系统下的所有驱动器及其类型。这对于构建需要检测硬件配置或磁盘状态的应用程序非常有价值。以上就是 C# 获取并遍历系统所有驱动器类型的详细内容,更多关于 C# 系统交互编程的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









