2011-12-12 22 views
6

Jak wyświetlić listę wszystkich udostępnionych folderów pod konkretnym adresem IP?Akcje pod IP

kod Mock:

IP ip = new IP("10.0.0.9"); 

for(File share : ip.getSharedFolders){ 
    System.out.println(share.getName()); 
} 

Czy istnieje sposób, w jaki można to osiągnąć?

Chcę zrobić coś podobnego do Eksploratora sieci Windows i muszę uzyskać wszystkie foldery współdzielone pod określonym adresem IP, dzięki czemu mogę wygenerować drzewo.

Network explorer

Z pierwszego poziomu folderów współdzielonych mogę easely dostać niższe poziomy jak ten

for(File f : new File("//10.0.0.9/d").listFiles()){ 
        System.out.println(f.getName()); 
+0

„udostępnione foldery?” - jak współdzielonych –

+1

nowy plik ("// 10.0.0.9/d/movies") Akcje Samby, lokalizacja sieciowa – ex0b1t

Odpowiedz

11

Listę udziałów można uzyskać, korzystając z metody The Java CIFS Client Library, w szczególności z metody SmbFile.list. Oto mały ilustracją jak używać tego API:

SmbFile server = new SmbFile("smb://server/"); 
String[] shares = server.list(); 
+0

thx za szybką odpowiedź – ex0b1t

+0

To naprawdę super! +1 Dzięki – MaVRoSCy

2

Java z wyjęciu z pudełka nie obsługuje, co chce zrobić. Aby to zrobić, należy użyć bibliotek, takich jak JCIFS.

Jedną z łatwych do usunięcia metod jest upewnienie się, że mapowanie dysku (jeśli system Windows lub pakiet nfs/smb dla innych systemów operacyjnych) jest zlokalizowany w lokalizacji, a następnie traktowane jako plik lokalny - przy użyciu interfejsów API java.io.

0

Jeśli pliki są dostępne za pośrednictwem adresu IP serwera (sieć mądry i pozwolenie mądry), a następnie, że można wymienić je wszystkie rekurencyjnie w następujący sposób:

  1. Uzyskaj nazwę zdalnego folderu. Przykład "//10.0.0.9/folder"
  2. iterację tego folderu tak jak byś zrobić do listy plików w katalogu lokalnego (patrz poniższy link, aby dowiedzieć się więcej o wystawianie lokalnych plików w katalogu lokalnego