使用 C++ 以编程方式将新字母分配给现有驱动器

Posted

技术标签:

【中文标题】使用 C++ 以编程方式将新字母分配给现有驱动器【英文标题】:Programmatically assign new letter to existing drive with C++ 【发布时间】:2011-01-07 14:11:31 【问题描述】:

我想更改驱动器号。例如,我可以使用diskpart 为驱动器(U 盘或新硬盘)分配一个新盘符。

如何在 C/C++ 中实现它?

【问题讨论】:

我在 msdn 上遇到了this article。也许它可以帮助某人(这正是我想要的)。 检查以下链接:msdn.microsoft.com/en-us/library/windows/desktop/…(这是一个带有源代码的示例,对您想要做的事情非常有用)以及对“DefineDosDevice”功能的引用:msdn.microsoft.com/en-us/library/windows/desktop/…希望这有帮助 【参考方案1】:

SetVolumeMountPoint(L"X:\", volumeName.c_str())

【讨论】:

来自文档“...另一个卷上的目录(例如,Y:\MountX)。字符串必须以尾部反斜杠 ('\') 结尾。” -- 这是一个很好的例子。 是的,幸运的是这个例子在这种情况下是无关紧要的。【参考方案2】:

一个简单而简单的方法是直接向diskpart

int main () 
  int i = system("diskpart ..."); // Add args here.
  cout << "command exited with code: " << i;
  // ...

它有一个/s 参数,您可以使用该参数提供一个在diskpart 内运行的脚本,因此您可以使用相关子命令简单地编写一个文本文件,然后使用您的system(...) 将其传递给diskpart打电话。

【讨论】:

谢谢,如果我不能用 c++ 代码实现它,那是我最后的选择

以上是关于使用 C++ 以编程方式将新字母分配给现有驱动器的主要内容,如果未能解决你的问题,请参考以下文章

将新文档添加到现有集群中

使用 INF 文件 c++ 以编程方式安装驱动程序

使用 Keycloak API 以编程方式将角色分配给组

以编程方式将位置分配给android中的按钮

如何确定分配给 Azure 驱动器的字母?

将新任务分配给 forked() 进程