2010-01-31 9 views
18

muszę podłączyć do udostępnionego folderu na zdalnym komputerze z systemem Windows za pośrednictwem Java, gdzie kładę uwierzytelniania domeny (nazwę użytkownika i hasło) w kodzie, tutaj jest mój kodpodłączania do folderu udostępnionego w oknach z 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); 
    } 

Dzięki

+1

W Oracle Java 8 działa to bez problemów. – Robert

Odpowiedz

29

należy użyć SmbFile i NtlmPasswordAuthentication z JCIFS. Oto prosty kawałek kodu, aby pokazać, jak to zrobić:

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

Próbowałem trochę i ta odpowiedź nie działa tak dobrze ... Wkrótce opublikuję lepszy. –

+0

zrobione, dodano kod, który działa –

+0

NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication (null, "user", "password"); Zatem "użytkownik", "hasło" to prawo do autoryzacji domeny? – SShehab

0

przypadku uzyskiwania dostępu otwartych udostępnionych folderów (czyli nazwa użytkownika lub hasło nie są znane lub wymagane), a następnie można wykonać poniższy kod:

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]); 
} 
Powiązane problemy