我在C ++上编写代码,使用“net use * \ server ... etc”映射到最近的可用驱动器,之后我想在其上打开一个文件。
是否有一个命令可以让我与这个新驱动器进行交互而无需知道事先映射到哪个驱动器? (通常它会驱动Z:,但并不总是!)
更清晰的例子:
system("net use * \\server\folder\ p455word /user:server\user /p:no")
(output: "Server succesfully mapped to drive Z:")
然后我通常会尝试打开文件:
system("Z:\\folder\mydoc.docx")
我的问题是如何做到这一点:
system("*\\\folder\mydoc.docx")
*表示计算机选择映射到的驱动器,或者是否有解决方法。谢谢!
答案 0 :(得分:0)
如果你在这里寻找一些net use
特定的魔法,你会感到失望。您的程序只是将文本字符串传递给Windows shell,并且没有关于您执行的命令的知识或信息。除了阅读命令的文本输出之外,它当然无法提取有关该调用结果的状态信息。
幸运的是,文本输出就是您所需要的 - 您的报价显示分配的驱动器号就在那里。您只需要将其拉出,然后通过从现在已知的驱动器号和路径的固定部分构建一个字符串来动态构建后续的system
调用。
system
并不是真的为此而设计的。 Here's how to execute a command and retrieve its output。从字符串"Server succesfully mapped to drive Z:"
中提取驱动器号也是一个单独的问题。一般来说,遇到问题时,请将其分解为组成部分;然后你就能够“查找”#34;成功。