尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

dotnet win32 判断传入路径是否在 U 盘

dotnet win32 判断传入路径是否在 U 盘
📅 发布时间:2026/6/21 21:58:37
我在制作一个类似 PPT 的工具,这个工具有超链接模块,我需要关注的是超链接文件是否链接到 U 盘上了已给出提示。防止一些用户链接到自己电脑上,然后换个电脑又找不到

通过 dotnet 自带的 DriveInfo 类就能够很好地实现这一点。只需判断 DriveType 属性是否为 Removable 即可了解是否是 U 盘。判断原理是判断可插拔的盘

遍历当前系统的所有磁盘,判断有哪些是 U 盘的方法如下

foreach (var driveInfo in DriveInfo.GetDrives())
{if (driveInfo.DriveType == DriveType.Removable){Console.WriteLine($"{driveInfo.RootDirectory} 是 U 盘");}
}

点开 DriveType 还可以看到更多有趣的类型,比如光盘等

判断传入路径是否在 U 盘里,可用如下判断

var path = @"H:\lindexi\test.txt";
var isUDiskPath = IsUDiskPath(path);
Console.WriteLine($"Path={path} 是 U 盘={isUDiskPath}");static bool IsUDiskPath(string path)
{if (!Path.IsPathFullyQualified(path)){throw new ArgumentException($"路径必须是绝对路径。 Path={path}", nameof(path));}var pathRoot = Path.GetPathRoot(path);if (pathRoot is null){return false;}var driveInfo = new DriveInfo(pathRoot);return driveInfo.DriveType == DriveType.Removable;
}

软软对 DriveInfo 的容错设计是非常好的,接受的输入非常多:

  • 支持传入整个路径:如 H:\lindexi\test.txt 也是可以的
  • 支持传入标准根路径:如 H:\
  • 支持传入盘符:如 H
  • 支持传入不存在的磁盘路径,如 Y: 盘。此时不会抛出异常,只会让 DriveType 为 NoRootDirectory 类型

本文的核心代码如下

var path = @"H:\lindexi\test.txt";
var isUDiskPath = IsUDiskPath(path);
Console.WriteLine($"Path={path} 是 U 盘={isUDiskPath}");foreach (var driveInfo in DriveInfo.GetDrives())
{if (driveInfo.DriveType == DriveType.Removable){Console.WriteLine($"{driveInfo.RootDirectory} 是 U 盘");}
}static bool IsUDiskPath(string path)
{if (!Path.IsPathFullyQualified(path)){throw new ArgumentException($"路径必须是绝对路径。 Path={path}", nameof(path));}var pathRoot = Path.GetPathRoot(path);if (pathRoot is null){return false;}var driveInfo = new DriveInfo(pathRoot);return driveInfo.DriveType == DriveType.Removable;
}

本文代码放在 github 和 gitee 上,可以使用如下命令行拉取代码。我整个代码仓库比较庞大,使用以下命令行可以进行部分拉取,拉取速度比较快

先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文的代码

git init
git remote add origin https://gitee.com/lindexi/lindexi_gd.git
git pull origin daea5a766abb0f786c58137cd0066cb7bffb37e5

以上使用的是国内的 gitee 的源,如果 gitee 不能访问,请替换为 github 的源。请在命令行继续输入以下代码,将 gitee 源换成 github 源进行拉取代码。如果依然拉取不到代码,可以发邮件向我要代码

git remote remove origin
git remote add origin https://github.com/lindexi/lindexi_gd.git
git pull origin daea5a766abb0f786c58137cd0066cb7bffb37e5

获取代码之后,进入 Workbench/CawrelibairquJojaijurhewe 文件夹,即可获取到源代码

更多技术博客,请参阅 博客导航

博客园博客只做备份,博客发布就不再更新,如果想看最新博客,请访问 https://blog.lindexi.com/

如图片看不见,请在浏览器开启不安全http内容兼容

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名[林德熙](https://www.cnblogs.com/lindexi)(包含链接:https://www.cnblogs.com/lindexi ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我[联系](mailto:lindexi_gd@163.com)。

相关新闻

  • 智能手机防盗为何如此困难?技术、市场与全球治理的挑战
  • 2025年12月四川楼梯栏杆厂家口碑榜 - 2025年品牌推荐榜
  • 2025年上海ISO27001认证服务商综合评估与选择建议 - 2025年品牌推荐榜

最新新闻

  • D2DX:让《暗黑破坏神2》在现代PC上焕发新生的终极改造方案
  • 3分钟上手:用这个Chrome扩展彻底改变你的Markdown阅读体验
  • 5大核心技术解析:gdsdecomp如何实现Godot游戏逆向工程的零门槛突破
  • 东莞电源线加工厂有哪些?全链路源头加工认准东莞市正好电气有限公司 - 速递信息
  • 重塑规矩意识!福建靠谱军事化特训机构-科学矫正不良行为习惯 - 武汉中职最新信息发布
  • 寄大件怎么最省钱?2026物流公司价格对比 - 快递物流资讯

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号