Ver Mensaje Individual
  #6 (permalink)  
Antiguo 18/05/2007, 07:12
radian
 
Fecha de Ingreso: diciembre-2005
Ubicación: Madrid, España
Mensajes: 154
Antigüedad: 19 años
Puntos: 2
Re: Conectar a unidad de red para operar con archivos

carota,

Esta librería te permite trabajar con esa unidad remota de red como si fuera un archivo local de tu PC, por lo que puedes hacer todo eso que quieres y más. Lee más documentación en la página que te cité.

Te paso también una clase con la función de conexión que implementé yo:


Código:
package ...;
import jcifs.smb.*;
import java.util.*;
import java.io.*;

public class UnidadRed 
{
  private String user;
  private String password;
  private String host;
  private String unidad;  
  private String ip;
  
  public UnidadRed()
  {

  }
  
  public void setIp (String ip)                 { this.ip = ip;  }
  public void setUser (String user)             { this.user = user; }
  public void setPassword (String password)     { this.password = password; }
  public void setHost (String host)             { this.host = host; }
  public void setUnidad (String unidad)         { this.unidad = unidad; }
  
  public void conectar()
  {
    try
    {
      PropertyResourceBundle resb = (PropertyResourceBundle) 
                      ResourceBundle.getBundle("properties.unidad");
      setHost(resb.getString("unidad.host"));
      setIp(resb.getString("unidad.ip"));
      setUser(resb.getString("unidad.user"));
      setPassword(resb.getString("unidad.password"));
      setUnidad(resb.getString("unidad.unidad"));
      
      jcifs.Config.setProperty(this.host,this.ip);
    }
    catch (Exception e) {}
  }
  
  public String apuntarPath ()
  {
    conectar();
    return "smb://" + this.user + ":" + this.password + "@" + this.host + "/" + 
            this.unidad + "/";
  }
  
}
Puedes ve que tengo todos esos datos en un fichero aparte que se llama "unidad.properties"

Este es un ejemplo del uso de esta clase:


Código:
SmbFile archivo = null;

String fichero = ...

try
{
 PropertyResourceBundle resb = (PropertyResourceBundle) 
                                         ResourceBundle.getBundle("properties.unidad");
 UnidadRed unidadRed = new UnidadRed();
 archivo = new SmbFile(unidadRed.apuntarPath() + fichero);  

.... aquí haz tus operaciones con ese archivo ... 
// date cuenta que la llamada a unidadRed.apuntarPath() conecta con la unidad de red y apunta al path básico

}

catch (Exception e) 
{
   e.printStackTrace();
}

Para votar reputación se pincha en la balanza que está arriba a la derecha de cualquier mensaje que haya enviado el usuario al que quieres votar.

Saludos y suerte