jueves, 13 de septiembre de 2007

Mapear unidad de red desde java con net use

Muy util si tenemos que automatizar el proceso de mapeo de unidades de red.
Recordad que el host debe tener el formato \\nombremaquina.
El proceso es muy sencillo, solo creamos una funcion que coja como parametros los parametros de la comanda "net use" del cmd y lo ejecutamos en una consola desde java.

public static int mapDrive(String drive, String path, String user, String password, String host){
String command = "net use " + drive + ": " + host + path + " /USER:" + host.substring(2) + "\\" + user + " " + password;
try{
Process process = Runtime.getRuntime().exec(command);
InputStream br = process.getInputStream();
int i = br.read();
String out = "";
while (i != -1) {
out = out + (char)i;
System.out.print((char) i);
i = br.read();
}
if(out.indexOf("The command completed successfully")==-1){
System.out.println("Cannot map drive "+drive);
return 1;
}
}catch(Exception e){
e.printStackTrace();
return 1;
}
return 0;
}


Si retorna 0, la unidad ha sido mapeada. Si retorna 1 ha encontrado un error.

1 comentario:

jc dijo...

Podrias mejorarlo para el uso con EJB