将 Windows 设备路径解析为驱动器盘符

2024-02-06

如何解析 NT 样式的设备路径,例如\Device\CdRom0,到其逻辑驱动器号,例如G:\ ?

编辑:不幸的是,卷名称与设备路径不同GetVolumePathNamesForVolumeName()行不通的。


希望下面的代码足以解决这个问题 - 在初始化它之后,您只需要迭代集合即可找到匹配项。您可能希望在插入集合之前将所有内容转换为大写/小写,以帮助提高查找性能。

typedef basic_string<TCHAR> tstring;
typedef map<tstring, tstring> HardDiskCollection;

void Initialise( HardDiskCollection &_hardDiskCollection )
{
    TCHAR tszLinkName[MAX_PATH] = { 0 };
    TCHAR tszDevName[MAX_PATH] = { 0 };
    TCHAR tcDrive = 0;

    _tcscpy_s( tszLinkName, MAX_PATH, _T("a:") );
    for ( tcDrive = _T('a'); tcDrive < _T('z'); ++tcDrive )
    {
        tszLinkName[0] = tcDrive;
        if ( QueryDosDevice( tszLinkName, tszDevName, MAX_PATH ) )
        {
            _hardDiskCollection.insert( pair<tstring, tstring>( tszLinkName, tszDevName ) );
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Windows 设备路径解析为驱动器盘符 的相关文章

  • 在OpenCV中将YUV转换为BGR或RGB

    我有一个电视采集卡 其输入内容为 YUV 格式 我在这里看到了与此问题类似的其他帖子 并尝试尝试所述的所有可能的方法 但它们都没有提供清晰的图像 目前最好的结果是 OpenCVcvCvtColor scr dst CV YUV2BGR 函数
  • 代码退出-1073741515 (0xc0000135)“未找到依赖的 dll”

    我正在尝试编写一个简单的程序 与 2019 年相比 Windows 10 64 位 调试 gt x64 遵循 将 Visual C 项目配置为面向 64 位平台 1 include
  • 如何解决内存碎片

    我们偶尔会遇到这样的问题 长时间运行的服务器进程 在 Windows Server 2003 上运行 由于内存分配失败而引发异常 我们怀疑这些分配由于内存碎片而失败 因此 我们一直在寻找一些可能对我们有帮助的替代内存分配机制 我希望有人能告
  • 取消后调用 boost::asio 异步处理程序没有错误

    我的代码在单个线程中使用 boost asio 和 io service 来执行各种套接字操作 所有操作都是异步的 每个处理程序都依赖于boost system error code 特别boost asio error operation
  • 如何使用命令行压缩文件?

    我想使用批处理文件命令 Windows XP 批处理文件 压缩目录 例如 如果我想解压缩一个文件意味着我可以使用jar xf file zip java bat 文件命令 就像我想要一个命令行批处理来压缩目录一样 如果您使用的是 Ubunt
  • 在 Cygwin 软件包列表中找不到 Openssl

    这里说的是https github com joyent node wiki Building node js on Cygwin Windows https github com joyent node wiki Building nod
  • 自定义波特率,redux

    我遇到的问题详述如下自定义波特率 https stackoverflow com questions 7714060 custom baud rate SetCommState 波特率 921600 失败 但波特率 115200 成功 尽管
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • teracopy 如何替换默认的 Windows 副本

    我问了这个问题Windows 文件复制内部结构 动态加密 https stackoverflow com questions 24220382 windows file copy internals on the fly encryptio
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 常见的 Windows 编译器上有哪些 std::locale 名称可用?

    该标准对于什么构成有效的语言环境名称几乎没有提及 只有传递无效的区域设置名称才会导致std runtime error 哪些语言环境名称可用于常见的 Windows 编译器 例如 MSVC MinGW 和 ICC 好吧 C 和 C 语言环境
  • Windows 操作系统中 ST_INO(os.stat() 输出)的含义

    谁能告诉我这个值的含义是什么st ino是跑步时os stat 在 Windows 上 Python 3 5 3 在早期的 Python 版本中 它包含虚拟值 但最近发生了变化 我找不到它是如何计算 生成的 我怀疑它因文件系统 NTFS F
  • 当我启动 Windows 命令提示符时,我做了什么导致环境变量发生更改?

    我使用的是 Windows 10 x64 我安装了 Anaconda3 如果我启动 C Windows system32 cmd exe 时没有运行任何其他内容 并且在我可以看到的后台中没有任何有趣的内容 则以下内容将添加到控制面板 UI
  • 将所有文件与指定目录(和子目录)中的所有文件进行二进制比较

    我需要将目录及其子目录中包含的所有文件与同一目录及其子目录中包含的所有其他文件进行比较 并将匹配文件的路径记录到文本文件或 CSV 我意识到有一些软件工具可以做到这一点 但除非它可以在 Windows 中开箱即用 否则我将不被允许在我的网络
  • 如何迭代所有注册表项?

    我正在尝试迭代所有注册表项以查找 包含 并删除 jre1 5 0 14 值 有办法做到吗 下面的代码只是在特定键下找到jre1 5 0 14 我确实想迭代所有的键 顺便说一句 if 子句获取是否等于 jre1 5 0 14 但如果它包含 j
  • 在 Windows 中使用 PHP 创建受密码保护的 Zip 文件

    我正在 PHP 中创建给定文件的 zip 文件 下面是函数 function create zip file file name zip new ZipArchive zip name file name zip Zip name zip
  • 生成尽可能最快的可执行文件

    我有一个非常大的程序 我一直在 Visual Studio 下编译 v6 然后迁移到 2008 我需要可执行文件尽可能快地运行 该程序大部分时间都花在处理各种大小的整数上 并且执行很少的 IO 显然 我会选择最大优化 但似乎可以做很多不属于
  • Mac OS X 上的 /proc/self/cmdline / GetCommandLine 等效项是什么?

    如何在不使用 argc argv 的情况下访问 Mac OS X 上的命令行 在 Linux 上 我会简单地阅读 proc self cmdline or use GetCommandLine在 Windows 上 但我找不到 Mac OS
  • 如何知道python运行脚本的路径?

    sys arg 0 给我 python 脚本 例如 python hello py 返回 sys arg 0 的 hello py 但我需要知道 hello py 位于完整路径中的位置 我怎样才能用Python做到这一点 os path a
  • SetWindowsHookEx 函数返回 NULL

    我正在研究 DLL 注入 但收到错误如下 挂接进程失败 87 参数不正确 目标进程和dll都是64位的 注入代码为 BOOL HookInjection TCHAR target TCHAR dll name https msdn micr

随机推荐

  • 数据库中的动态站点地图不显示节点

    我已经实现了这个https github com maartenba MvcSiteMapProvider wiki Defining sitemap nodes using IDynamicNodeProvider https githu
  • 为什么在本地 k8s 环境中使用 nginx-ingress 控制器和资源时有时需要编辑 /etc/hosts?

    不确定这是否特定于操作系统 但在我的 M1 Mac 上 我正在安装位于官方的 Nginx 控制器和资源示例控制器快速入门指南 https kubernetes github io ingress nginx deploy quick sta
  • jQuery DOM 操作效率 - 使用 JavaScript 构建整个页面

    我将从一个完全空白的页面开始 除了 html head 和 body 之外没有任何元素 然后使用 jQuery 构建页面 页面内容将采用来自 AJAX 请求的 JSON 形式 JSON 中的内容不会有任何 HTML 将根据 JSON 对象的
  • 使用 TypeScript 将箭头函数编译为常规函数

    这是一个非常简单的问题 但我还没有在任何地方找到答案 是否有一些开关可以使 TypeScript 将箭头函数编译为纯 JavaScript 函数 我在代码中经常使用它们 并且不想重写所有内容 但我最近意识到 IE 不支持它们 我已经尝试将脚
  • 创建一个全局类 Objective-c?

    我想在 Objective C 中创建一个具有已存储数据的类 以便访问数据时我不想实例化该类 我该怎么做 您可以使用单例 也可以使用仅由类方法组成并允许您访问静态数据的类 这是 ObjC 中的基本单例实现 interface MySingl
  • 如何修改此脚本以获取参数?

    我有一个结合了电源点的电源 shell 脚本 问题是它仅适用于当前目录 脚本所在的目录 中的电源点并将组合的电源点保存到文档中 如何更改脚本以从作为参数给出的任何目录运行 我像这样运行 power shell 脚本 Merge Presen
  • z 索引无法正常工作

    所以我正在制作一个网站 我有一个带有一些盒子阴影的顶部栏 然后我的正下方有一个描述框 因此 我设置了 z 索引以确保顶部栏 box shadow 会使用以下 css 覆盖描述框 topbar z index 9999 important d
  • 如何在汇编中实现 mod 运算符

    我正在学习汇编语言中的除法 根据我正在学习的书 idiv运算的结果放在eax中 余数放在edx中 书中的一个练习是实现number result divisor在装配中 我本以为这相当于正常的除法运算 除了 edx 是结果 然而这并没有起作
  • jQuery UI 可排序 - 对图像进行排序

    我刚刚为一组图像实现了 jQuery UI 可排序插件 我的标记如下 ul class ui sortable li img src images member 4698568 7884029 t jpg alt li li img src
  • WebBrowser 控件不会从 C# 打印

    我在 WinForms 应用程序上有一个 WebBrowser 控件 它正在加载转换为 HTML CSS 的 XML 如果我只想在那里或在常规浏览器中查看它 看起来很漂亮 当表单加载时 它应该导航到该文件 然后当 OnDocumentCom
  • 如何使用ssr在nuxt中添加ckeditor插件

    我正在尝试在我的通用 nuxt 应用程序中添加 ckeditor 5 的对齐插件 SSR 我在插件中尝试过这样 import Vue from vue import ClassicEditor from ckeditor ckeditor5
  • Jekyll编码类别特殊字符名称

    我的 Jekyll 安装曾经可以工作 自更新以来 我遇到了 URL 包含带有一些特殊字符的标签名称的问题 现在 当我尝试访问包含特殊字符的 URL 时 会收到一条错误消息 例如http 127 0 0 1 4000 tag Actualit
  • 最小成本强连通有向图

    我有一个强连接的有向图 即图 G 中的每对节点 i j 都有一条从 i 到 j 和 j 到 i 的路径 我希望从该图中找到一个强连通图 使得所有边的总和最小 换句话说 我需要以这样的方式删除边 即删除它们后 图仍然是强连接的 并且边总和的成
  • 反应具有比例依赖性的本机动画旋转圆圈

    我有一个动画组件 您可以在其中选择十七个圆圈之一 到目前为止看起来像这样 我想添加一个动画 当圆靠近中心时 它会缩放圆 我怎么做 到目前为止 我尝试将圆的 x 值计算为Math sin index deltaTheta Math PI 18
  • TPL 取消延续从未调用已取消的任务

    我的代码中有以下使用 TPL 的设置 我的班级中有一个字段 private CancellationTokenSource cancellationTokenSource 每次我创建使用特定取消令牌的 TPL 任务时 都会实例化此 Canc
  • 加载配置文件时发生错误:无法开始监视“\\share”的更改

    上周我也遇到了同样的问题 在启用模拟后它自行解决了 现在 我已将此盒子移至其他位置 现在再次收到它 然而 这一次的描述性要少得多 我收到的唯一错误是 An error occurred loading a configuration fil
  • boost::make_shared 没有调用(放置)运算符 new 吗?

    我第一次使用 boost make shared 创建共享指针指向的对象 主要是因为我们的代码太慢了 而单一分配确实有助于提高性能 在 硬手动方式 修复了一些内存泄漏之后 我决定通过覆盖所有相关类的新运算符来实现一个简单的内存泄漏检测器 只
  • 未遵循 Java log4j2 记录器级别

    所以我正在尝试学习 log4j2 并关注记录器及其级别和父级传播 目前我的源层次结构运行是 main java calculatorMain Main java someClass2 java someClass1 java resourc
  • PHP:选择添加到 Amazon S3 文件夹的最新文件

    我正在开发自动更新解决方案 并使用 Amazon S3 进行分发 我希望它的工作方式如下 我将文件上传到 s3 文件夹 自动 PHP 脚本检测到已添加新文件并通知客户端 为此 我需要以某种方式列出亚马逊存储桶文件夹中的所有文件 并找到最后添
  • 将 Windows 设备路径解析为驱动器盘符

    如何解析 NT 样式的设备路径 例如 Device CdRom0 到其逻辑驱动器号 例如G 编辑 不幸的是 卷名称与设备路径不同GetVolumePathNamesForVolumeName 行不通的 希望下面的代码足以解决这个问题 在初始