Zum Inhalt springen

sun.net.ftp.FTPClient


Empfohlene Beiträge

Geschrieben

Grüße zusammen,

Habe ein kleines Problem bei dem ich auf dem Schlauch stehe bei dem ihr mir sicher weiterhelfen könnt.

Ich lese über sun.net.ftp.FTPClient die Dateien aus einem FTP-Server aus und zwar über die Funktion list() des FTPClient.


    	FtpClient client = new FtpClient("linden.ag");

    	client.login("*******","******");

    	System.out.println(client.getResponseString());

    	System.out.println(client.getResponseString());

    	TelnetInputStream in = client.list();

    	int c = 0;

    	StringBuffer line = new StringBuffer();

    	while((c = in.read()) != -1) {

    		if(c==10) {

    			FTPFile file = new FTPFile(line);

                        this.fileVector.add(file);

    			line.delete(0,line.length());

    		} else {

        		line.append((char)c);

    		}

    	}

Soweit so gut. Die Frage ist nur, ob ich wirklich davon ausgehen kann, dass mir jeder FTP-Server die line im selben Format zurückgibt. Ich erhalte folgendes:

[Rechte][typ][user][group][size][month][dayofmonth][time][filename]

bsp:

-rw-r--r--   1 user ftpusers     8840 Jan 25 08:50 test.jpg

Was mich an dem Format wundert ist, dass im Dateidatum nicht das Jahr irgendwo mit auftaucht.

Zudem suche ich nach einer schönen Möglichkeit, aus dem Format die filenames auszulesen - auch unter der Annahme, dass im filename Leerzeichen vorhanden sein könnten.

Mit dem StringTokenizer muss ich 100%ig wissen, dass die ersten 8 Parameter auch wirklich immer so stehen bleiben.

Kann ich also davon ausgehen, dass das Format, wie ich es oben angegeben habe von jedem FTP-Server so zurückgegeben wird? Wenn ja: Gibt es eine schönere Variante, den String zu zerlegen außer über den StringTokenizer?

Gruß

Markus

Geschrieben

Da die Funktion List() lediglich den FTP-Command "LIST" an den Server sendet, hab ich mal in der entsprechend RFC nachgeschaut. Dort heißt es:

[...]

LIST (LIST)

This command causes a list to be sent from the server to the

passive DTP. If the pathname specifies a directory or other

group of files, the server should transfer a list of files

in the specified directory. If the pathname specifies a

file then the server should send current information on the

file. A null argument implies the user's current working or

default directory. The data transfer is over the data

connection in type ASCII or type EBCDIC. (The user must

ensure that the TYPE is appropriately ASCII or EBCDIC).

Since the information on a file may vary widely from system

to system, this information may be hard to use automatically

in a program, but may be quite useful to a human user.

[...]

Geschrieben
Gibt es eine schönere Variante, den String zu zerlegen außer über den StringTokenizer?
Ja, wenn du nicht unbedingt auf den SUN Client angewiesen bist: Wechsel das FTP Package. Die sun.* Klassen können sich jederzeit ändern und/oder aus dem JDK komplett verschwinden.

Sicherer und nebenbei auch noch deutlich komfortabler ist ein "richtiges" FTP Client Package, wie z.B.

Jakarta Commons NET

http://jakarta.apache.org/commons/net/

oder direkt noch eine Abstraktionsstufe höher:

Jakarta Commons VFS

http://jakarta.apache.org/commons/vfs/

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...