2010-01-31 24 views
18

je dois vous connecter à un dossier partagé sur une machine Windows à distance via java, où je mets mon authentification de domaine (nom d'utilisateur et mot de passe) dans le code, voici mon codeconnexion au dossier partagé dans Windows avec 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); 
    } 

Merci

+1

Dans Oracle Java 8, cela fonctionne sans problème. – Robert

Répondre

29

Vous devez utiliser SmbFile et NtlmPasswordAuthentication de JCIFS. Voici un simple morceau de code pour vous montrer comment faire:

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

J'ai essayé un peu et cette réponse ne marche pas vraiment très bien ... j'en posterai un meilleur bientôt. –

+0

fait, ajouté du code qui fonctionne –

+0

NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication (null, "user", "mot de passe"); Donc le "utilisateur", "mot de passe" sont l'authentification du domaine? – SShehab

0

Si vous accédez à ouvrir des dossiers partagés (par exemple le nom d'utilisateur ou mot de passe ne sont pas connus ou requis), vous pouvez suivre le code ci-dessous:

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]); 
}