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.
jueves, 13 de septiembre de 2007
Recorrer fichero XML con JDom desde Java
Necesitamos importar las librerias...
import org.jdom.*;
import org.jdom.input.*;
Para abrir el archivo XML...
SAXBuilder builder = new SAXBuilder(false);
Document doc = builder.build("mi_archivo.xml");
Para recorrerlo...
Primero obtenemos el elemento raíz:
root = doc.getRootElement();
Ahora podemos encontrarnos dos tipos de elementos principales: Tipo Element (etiquetas que solo encontramos una vez y que pueden contener otras) y tipo List (etiquetas que aparecen varias veces).
Para obtener un elemento:
Element elemento = (Element) root.getChild("serverlist");
Para obtener una lista:
List lista = root.getChildren("serverlist");
Ahora suponemos que tenemos el XML siguiente...
<network>
<username atributo="hola">
<serverlist name="sl1">
<server ip="1">
<server ip="2">
</serverlist>
<serverlist name="sl2">
<server ip="3">
</serverlist>
</network>
Lo recorremos así:
SAXBuilder builder = new SAXBuilder(false);
Document doc = builder.build("mi_archivo.xml");
root = doc.getRootElement();
try{
String username=root.getChild("username").getAttributeValue("atributo");
List listaServerlist = root.getChildren("serverlist");
for(Iterator iter=listaServerlist.iterator();iter.hasNext();){
Element serverlist = (Element)iter.next();
System.out.println(serverlist.getAttributeValue("name"));
List listaServers = serverlist.getChildren("server");
for(Iterator iter2=listaServers.iterator();iter2.hasNext();){
Element server = (Element) iter2.next();
System.out.println(server.getAttributeValue("ip"));
}
}
}catch(Exception e){
e.printStackTrace();
}
import org.jdom.*;
import org.jdom.input.*;
Para abrir el archivo XML...
SAXBuilder builder = new SAXBuilder(false);
Document doc = builder.build("mi_archivo.xml");
Para recorrerlo...
Primero obtenemos el elemento raíz:
root = doc.getRootElement();
Ahora podemos encontrarnos dos tipos de elementos principales: Tipo Element (etiquetas que solo encontramos una vez y que pueden contener otras) y tipo List (etiquetas que aparecen varias veces).
Para obtener un elemento:
Element elemento = (Element) root.getChild("serverlist");
Para obtener una lista:
List lista = root.getChildren("serverlist");
Ahora suponemos que tenemos el XML siguiente...
<network>
<username atributo="hola">
<serverlist name="sl1">
<server ip="1">
<server ip="2">
</serverlist>
<serverlist name="sl2">
<server ip="3">
</serverlist>
</network>
Lo recorremos así:
SAXBuilder builder = new SAXBuilder(false);
Document doc = builder.build("mi_archivo.xml");
root = doc.getRootElement();
try{
String username=root.getChild("username").getAttributeValue("atributo");
List listaServerlist = root.getChildren("serverlist");
for(Iterator iter=listaServerlist.iterator();iter.hasNext();){
Element serverlist = (Element)iter.next();
System.out.println(serverlist.getAttributeValue("name"));
List listaServers = serverlist.getChildren("server");
for(Iterator iter2=listaServers.iterator();iter2.hasNext();){
Element server = (Element) iter2.next();
System.out.println(server.getAttributeValue("ip"));
}
}
}catch(Exception e){
e.printStackTrace();
}
Suscribirse a:
Comentarios (Atom)