# FTP Verbindung und download von *.txt



## michaelschuler (25. Jun 2004)

Hallo zusammen 

Mein Problem sieht folgendermassen aus:
Ich möchte beim Programmstart eine Verbindung zu einem FTP-Server aufbauen, und gleich sämtliche *.txt files in ein bestimmtes verzeichnis kopieren. Mein Problem ist nun, dass ich zwar schon verbindungen aufbauen konnte, jedoch nie downloaden konnte. Habe dazu bereits vorhandene Klassen von dritten verwendet, kriege aber jedesmal eine exception.

Kennt jemand von euch eine gute Anleitung oder eine super Klasse?

Freundliche Grüsse
Michael Schuler


----------



## Roar (26. Jun 2004)

michaelschuler hat gesagt.:
			
		

> Habe dazu bereits vorhandene Klassen von dritten verwendet, kriege aber jedesmal eine exception.



vielleicht wär es sinnvoll erstmal versuchen den fehler zu beheben ! was bekommst du für eine exception? stacktrace? code?


----------



## michaelschuler (26. Jun 2004)

Ich erhalte eine SocketException als StackTrace. Kann den Fehler jedoch nicht zuordnen, weiss nicht, woher er kommt.


----------



## Roar (26. Jun 2004)

SocketException? Hmm... die wird normalerweise nicht bei trivialen fehlern geworfen. poste doch mal den stacktrace und relevanten code und markiere die zeile wo der fehler auftritt..


----------



## michaelschuler (29. Jun 2004)

Hier meine Ausgabe:

Trying to connect to ftp......
220-ftp........... X2 WS_FTP Server 2.0.4 (1583995067)
220-*** ................. FTP SERVER ***
220-
220-Unauthorized usage prohibited.
220-
220 ftp....................... X2 WS_FTP Server 2.0.4 (1583995067)
331 Password required
230-user logged in
Successfully logged in!
230-** WELCOME TO OUR FTP-SERVER **
230-
230-ATTENTTION!! Files older than 2 weeks will be deleted automatically.
230-
230-
230-
230 user logged in
System type is: UNIX
Current directory is: /users
215 UNIX
257 "/users" is current directory
java.net.SocketException: Connection reset
	at java.net.SocketInputStream.read(Unknown Source)
	at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(Unknown Source)
	at sun.nio.cs.StreamDecoder$CharsetSD.implRead(Unknown Source)
	at sun.nio.cs.StreamDecoder.read(Unknown Source)
	at java.io.InputStreamReader.read(Unknown Source)
	at java.io.BufferedReader.fill(Unknown Source)
	at java.io.BufferedReader.readLine(Unknown Source)
	at java.io.BufferedReader.readLine(Unknown Source)
	at FTPConnection.getFullServerReply(FTPConnection.java:419)
	at FTPConnection.getServerReply(FTPConnection.java:404)
	at FTPConnection.openPort(FTPConnection.java:871)
	at FTPConnection.setupDataPort(FTPConnection.java:808)
	at FTPConnection.executeDataCommand(FTPConnection.java:749)
	at FTPConnection.processFileListCommand(FTPConnection.java:531)
	at FTPConnection.getAndParseDirList(FTPConnection.java:565)
	at FTPConnection.listFiles(FTPConnection.java:480)
	at FTPConnection.listFiles(FTPConnection.java:465)
	at FTPFileDownload.<init>(FTPFileDownload.java:31)
	at FTPFileDownload.main(FTPFileDownload.java:60)



Hier der Code:


```
import java.io.*;
import java.net.*;

public class FTPFileDownload {
	
	private final static String serverName = "ftp..";
	private              FTPConnection ftp = null;
	private final static String username   = "";
	private final static String password   = "";
	
	public FTPFileDownload() {
		
		ftp = new FTPConnection(true);
		System.out.println("Trying to connect to " + serverName);
		try {
			ftp.connect(serverName);
			
			if (ftp.login(username, password)) {
				
				System.out.println("Successfully logged in!");
				System.out.println("System type is: " + ftp.getSystemType());
				System.out.println("Current directory is: " + ftp.getCurrentDirectory());
				String files = ftp.listFiles();
			//	String subDirs = ftp.listSubdirectories();
			//	System.out.println("Files in Directory:\n" + files);
			//	..................................
			}
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	private static String getStringFromUser(String prompt) throws IOException {
		System.out.print(prompt);
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		return br.readLine();
	}

	public static void main(String[] args) {
		new FTPFileDownload();
	}
}
```

Also der Fehler tritt bei listFiles(); und listSubdirectories(); auf...


----------



## Roar (29. Jun 2004)

> Connection reset



jetzt rat mal was das auf deutsch heisst  :? 
hast du das programm mal mit nem anderen server ausprobiert um auszuschließen dass das an deinem programm liegt?  und dir soltle klar sein dass FTP verbindungen automatisch nach einer bestimmten zeit geshclossen werden wenn nnix mehr hin und her gesendet wurde  :!:


----------



## peez (5. Jul 2004)

Läuft dort eine Firewall? Sowas kam bei mir mal von der Firewall. Da hilft nichts, du musst die Firewall anpassen oder anders Routen.
Vielleicht funktionierts im Passive Mode...

Gruß
Philipp


----------

