我们正在使用一些通过字母(例如 f:\)访问共享驱动器的旧代码。使用 UNC 表示法不是一种选择。我们的 Java 包装应用程序将作为服务运行,作为第一步,我想在代码中显式映射驱动器。有人做过吗?
Brett
问问题
35388 次
3 回答
16
考虑执行映射网络驱动器的 DOS 命令,如下面的代码所示:
String command = "c:\\windows\\system32\\net.exe use f: \\\\machine\\share /user:user password";
Process p = Runtime.getRuntime().exec(command);
...
查看 net use 命令的详细信息:
该命令的语法是: 网络使用 [设备名称 | *] [\\计算机名\共享名[\volume] [密码| *]] [/USER:[域名\]用户名] [/USER:[虚线域名\]用户名] [/USER:[用户名@dotted域名] [/智能卡] [/已保存] [[/删除] | [/坚持:{是| 不}]] 网络使用 {设备名称 | *} [密码 | *] /家 网络使用 [/持久性:{是 | 不}]
于 2008-10-16T14:51:30.897 回答
11
您可以使用 JCIFS
http://jcifs.samba.org/src/docs/api/jcifs/smb/SmbFile.html
或者,如果您想要更高级别的 API 并支持其他协议,如 FTP、Zip 等:
http://commons.apache.org/vfs/filesystems.html
这两个选项都是纯 Java 和跨平台的。
于 2008-10-16T14:55:27.050 回答
5
我认为最简单的方法是使用 Runtime.getRuntime().exec() 方法并调用“net use”命令。
例如:
try {
// Execute a command without arguments
String command = "C:\\Windows\\system32\\net.exe use F: \\\\server\\share /user:user password";
Process child = Runtime.getRuntime().exec(command);
} catch (IOException e) {
}
于 2008-10-16T14:48:11.060 回答