C#获取所有逻辑驱动器 C#如何列出电脑中所有的盘符-C#.Net教程

driveinfo.getdrives() 返回系统识别的所有逻辑驱动器数组,包含盘符但不保证可访问;需检查 isready 并过滤 drivetype 才能获取可用本地驱动器。

用 DriveInfo.GetDrives() 获取所有逻辑驱动器

这是最直接的方式,DriveInfo.GetDrives() 返回当前系统中所有逻辑驱动器的 DriveInfo 数组,包括已挂载的物理磁盘分区、U 盘、光驱、网络驱动器(若已映射)等。

注意:它不区分“是否可访问”,只反映系统识别出的逻辑盘符。部分驱动器可能因权限、未格式化或脱机而无法读取属性。

  • 返回结果包含所有盘符,如 "C:\"、"D:\"、"Z:\" 等,即使该驱动器当前无介质(如空光驱)也会列出
  • 需引用 System.IO 命名空间
  • 对每个 DriveInfo 实例,建议先检查 IsReady 属性再访问 TotalSize 或 AvailableFreeSpace,否则会抛出 IOException

只获取可用且可读的本地驱动器

如果只想列出用户能实际操作的盘符(比如资源管理器里显示为“本地磁盘”的那些),需要额外过滤:

  • 排除 DriveType.NoRootDirectory(如某些虚拟设备)和 DriveType.Unknown
  • 排除 DriveType.CDRom(光驱)或 DriveType.Network(除非你明确需要)
  • 必须检查 drive.IsReady == true,否则访问 DriveFormat 或空间信息会失败

示例片段:

var drives = DriveInfo.GetDrives()
    .Where(d => d.DriveType == DriveType.Fixed || d.DriveType == DriveType.Removable)
    .Where(d => d.IsReady)
    .Select(d => d.Name)
    .ToArray();

为什么 GetDrives() 有时返回空或报错

常见原因不是代码问题,而是执行环境或权限限制:

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » C#获取所有逻辑驱动器 C#如何列出电脑中所有的盘符-C#.Net教程
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4011289+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4011290+
  • 本周更新: 0+
  • 最后更新: 2026-03-16