如果名称中有空格,则Drive不会在Java中映射

时间:2014-09-10 16:24:04

标签: java mapping drive

我正在尝试使用Java映射驱动器。代码运行正常,驱动器没有映射。

zing =  "M: \\\\Ds-file2-2\\Quality Archive";
String command = "c:\\windows\\system32\\net.exe use " + zing;
Process p = Runtime.getRuntime().exec(command);

我试图在该服务器上映射其他文件夹并且它们可以正常工作。我试过映射 Windows中的驱动器和工作原理。我尝试用空格映射另一个文件夹,但失败了。我以为引号会捕获名称中的空格。没有 错误发生。

提前致谢!

1 个答案:

答案 0 :(得分:1)

您的问题是您希望在执行命令时显示字符串周围的引号。但你实际上并没有添加引号。在当前状态下,commandc:\\windows\\system32\\net.exe use M: \\\\Ds-file2-2\\Quality Archive。我假设你希望它是c:\\windows\\system32\\net.exe use "M: \\\\Ds-file2-2\\Quality Archive"

在这种情况下,将zing更改为zing = "\"M: \\\\Ds-file2-2\\Quality Archive\"". This is escaping the quotes with \“, and thus命令becomes c:\ windows \ system32 \ net.exe使用”M:\\ Ds- file2-2 \ Quality Archive“`。

上面的代码会变成这样:

zing =  "\"M: \\\\Ds-file2-2\\Quality Archive\"";
String command = "c:\\windows\\system32\\net.exe use " + zing;
Process p = Runtime.getRuntime().exec(command);