2010-01-31 266 views
18

se necesita para conectarse a una carpeta compartida en una máquina en forma remota a través de Java, donde pongo mi autenticación de dominio (nombre de usuario y contraseña) en el código, aquí está mi códigoconectar a la carpeta compartida en Windows con Java

File file = new File("\\\\theRemoteIP\\webapps"); 
    File[] files = file.listFiles(); 
    System.out.println("acssed done"); 

    for (int i = 0; i < files.length; i++) 
    { 
     String name = files[i].getName(); 
     System.out.println(name); 
    } 

Gracias

+1

En Oracle Java 8 esto funciona sin problemas. – Robert

Respuesta

29

debe utilizar SmbFile y NtlmPasswordAuthentication de JCIFS. Aquí es un simple trozo de código que le muestre cómo hacerlo:

String url = "smb://yourhost/yourpath/"; 
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(null, "user", "password"); 
SmbFile dir = new SmbFile(url, auth); 
for (SmbFile f : dir.listFiles()) 
{ 
    System.out.println(f.getName()); 
} 
+0

Lo intenté un poco y esta respuesta realmente no funciona tan bien ... Pronto publicaré una mejor. –

+0

hecho, se agregó un código que funciona –

+0

NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication (null, "user", "password"); Entonces, el "usuario", la "contraseña" son la autenticación de dominio ¿no? – SShehab

0

Si tiene acceso a las carpetas compartidas abiertas (es decir, nombre de usuario o contraseña no son conocidos o se requiere), entonces se puede seguir el código de abajo:

String path="smb://172.16.0.11/"; 

SmbFile smbFile = new SmbFile(path); 
String a[]=smbFile.list(); 
for(int i=0;i<a.length;i++) 
{ 
    System.out.println(a[i]); 
} 
Cuestiones relacionadas