2016-07-05 3 views
1

Ich brauche eine Verbindung zu einem FTP-Server und durchsuchen Sie alle Dateien ohne Verwendung von Bibliotheken wie apache.commons, weil ich nicht die Option habe, diese Bibliotheken im Moment zu bekommen .Java-Verbindung zum FTP-Server und Download von Dateien mit Java-Standardbibliotheken

Ich habe versucht, eine einfache URL-Verbindung:

URL url = new URL("username:[email protected]/folder/"); 
URLConnection conn = url.openConnection(); 
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); 

String line; 

while ((line = reader.readLine()) != null) { 
    System.out.println(line); 
} 

reader.close(); 

Wenn ich beinhalten nicht die /folder/ es funktioniert, aber es druckt mir viele Dinge, die ich nicht einmal in der Heimat Lage des FTP sehen Server, ich weiß nicht, ob es mir die Dateien oder andere Daten gibt.

Aber wenn ich /folder/ füge ich Fehler erhalten CWD /folder/:550 failed to change directory

und ich kann nicht die Berechtigungen des Directoy ändern, seine schreibgeschützt und das ist, was ich brauche.

Was ist daran falsch? Ist es möglich, mit den Standard-Bibliotheken von java zu arbeiten?

+0

überprüfen Sie diesen Link http://www.codejava.net/java-se/networking/ftp/using-urlconnection-to-list-files-and-directories-on-ftp-server – aravindKrishna

Antwort

2

Zuerst müssen Sie eine FTP-URL verwenden:

URL url = new URL("ftp:username:[email protected]/folder/"); 

vorausgesetzt username und password mit ihren richtigen Werten ersetzt werden.

Zweitens, wenn Sie FTP-Zugriff auf folder haben, wird es Ihnen eine Verzeichnisliste in einem bestimmten Format liefern. Wenn Sie dies nicht tun, müssen Sie die Ausnahmebedingungsnachricht lesen, die Sie erhalten. Wenn Sie /folder weglassen, erhalten Sie eine Auflistung dessen, was das Standard-Stammverzeichnis des FTP-Servers für dieses ist username. Der Code 550 bedeutet entweder ein Zugriffsproblem oder das Verzeichnis existiert nicht.

Verwandte Themen