<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.byte-welt.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Andy16823</id>
	<title>Byte-Welt Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.byte-welt.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Andy16823"/>
	<link rel="alternate" type="text/html" href="https://wiki.byte-welt.net/index.php/Spezial:Beitr%C3%A4ge/Andy16823"/>
	<updated>2026-07-22T04:54:54Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.byte-welt.net/index.php?title=Ftp-Client_Tutorial&amp;diff=5436</id>
		<title>Ftp-Client Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.byte-welt.net/index.php?title=Ftp-Client_Tutorial&amp;diff=5436"/>
		<updated>2013-08-17T18:52:22Z</updated>

		<summary type="html">&lt;p&gt;Andy16823: /* Änderungen &amp;amp; Hystorie */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Java Ftp  Client Tutorial =&lt;br /&gt;
&lt;br /&gt;
Mache mich mal drann um ein Ftp Tutorial zu Schreiben. In Unserem Toturial Erstellen wir einen Multi-Down/Upload Server. Wir Verwenden für Das Toturial die Mitgelieferte Klasse aus der Neusten Java Version. Für dieses Toturial solltest du die Grundlagen von Java Kennen. Auch Enfehle ich eine IDE zu Benutzen die über einen Designer Verfügt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Importierungen ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
import java.awt.List;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.net.InetAddress;&lt;br /&gt;
import java.net.InetSocketAddress;&lt;br /&gt;
import java.net.SocketAddress;&lt;br /&gt;
import java.net.UnknownHostException;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import javax.swing.DefaultListModel;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JDialog;&lt;br /&gt;
import javax.swing.JFileChooser;&lt;br /&gt;
import javax.swing.JTextField;&lt;br /&gt;
import javax.swing.UIManager;&lt;br /&gt;
import javax.swing.UnsupportedLookAndFeelException;&lt;br /&gt;
import javax.swing.tree.DefaultTreeModel;&lt;br /&gt;
import javax.swing.tree.MutableTreeNode;&lt;br /&gt;
import sun.net.ftp.FtpClient;&lt;br /&gt;
import sun.net.ftp.FtpDirEntry;&lt;br /&gt;
import sun.net.ftp.FtpProtocolException;&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Das Frame ==&lt;br /&gt;
Ich habe bei mir das Frame mit einer IDE Geschrieben die einen Desingner Verwendet, aber erfahrene Java Programmierer Sollten dies&lt;br /&gt;
auch in Wenigen Minuten mit einer IDE die Ohne Designer Arbeitet hinbekommen.&lt;br /&gt;
In dem Bild seht Ihr wie ich das Frame Aufgebaut habe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bild22.PNG|mini|hochkant=1.8|Das Frame]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie man Seht befinden sich auf dem Form 3 Listen und ein Menüstrip mit 2 Menüs, 3 textfelder, 1 Passwort Feld und ein Button. Ich habe folgende Listen Modelle den listen zugeordnet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Liste1 (DefaultListModel) mod (diese list zeigt die verzeichnisse an und Verfügt über ein Click ActionEvent&lt;br /&gt;
* Liste2 (DefaultListModel) Fmod (diese liste zeigt die Dateien An, aus dem Aktuellen FTP Verzeichniss.&lt;br /&gt;
* Liste3 (DefaultListModel) Cmod (diese liste dient als Interne Console)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Textfelder Werden folgt Verwendet&lt;br /&gt;
&lt;br /&gt;
* TextFeld1 Hier wird der Server Angegeben&lt;br /&gt;
* Textfeld2 Hier wird der Port Angegeben (Achtung der Port Muss Angegeben werden, bei vielen Servern ist der Standardt Port 21)&lt;br /&gt;
* Textfeld3 Hier Kommt der Benutzername Rein&lt;br /&gt;
* PasswordFeld1 Das Passwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Menü ist Aufgebaut in&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* File&lt;br /&gt;
&lt;br /&gt;
** Verbinden&lt;br /&gt;
** Trenen&lt;br /&gt;
** Daten Uploaden&lt;br /&gt;
** Daten Downloaden&lt;br /&gt;
** Daten Löschen&lt;br /&gt;
** Verzeichniss Löschen&lt;br /&gt;
** Verzeichniss Erstellen&lt;br /&gt;
&lt;br /&gt;
* Edit&lt;br /&gt;
** Übergeordneter Ordner&lt;br /&gt;
&lt;br /&gt;
== Die Codes ==&lt;br /&gt;
&lt;br /&gt;
=== Variabeln in der Klasse ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
//Suchen nach&lt;br /&gt;
public class main extends javax.swing.JFrame {&lt;br /&gt;
//hier diese Einträge Darunter Setzen&lt;br /&gt;
	public DefaultListModel mod;&lt;br /&gt;
	public FtpClient ftp;&lt;br /&gt;
	public FtpDirEntry direlement;&lt;br /&gt;
	public DefaultListModel Fmod;&lt;br /&gt;
	public DefaultListModel Cmod;&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Listen Initialisieren ===&lt;br /&gt;
Ich habe So die Listen Initalisiert&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
public main() {&lt;br /&gt;
initComponents();&lt;br /&gt;
// Hinzufügen&lt;br /&gt;
mod = new DefaultListModel();&lt;br /&gt;
jList1.setModel(mod);&lt;br /&gt;
Fmod = new DefaultListModel();&lt;br /&gt;
jList2.setModel(Fmod);&lt;br /&gt;
Cmod = new DefaultListModel();&lt;br /&gt;
jList3.setModel(Cmod);  &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Verbinden Action Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Elemente aus Modellen Löschen&lt;br /&gt;
        	Fmod.removeAllElements();&lt;br /&gt;
        	mod.removeAllElements();&lt;br /&gt;
        	// deklariren&lt;br /&gt;
        	// Deklarieren des List Models&lt;br /&gt;
        	mod = (DefaultListModel) jList1.getModel();&lt;br /&gt;
        	// holen des Inhaltes aus der Server Text Box&lt;br /&gt;
        	String servUrl=jTextField1.getText();&lt;br /&gt;
        	// holen des Inhaltes aus der Port Text Box&lt;br /&gt;
        	int port=Integer.parseInt(jTextField2.getText());&lt;br /&gt;
        	// Internet Adresse umwandln in IP&lt;br /&gt;
        	String ipAdr = InetAddress.getByName(servUrl).getHostAddress();&lt;br /&gt;
        	// Consolen Anzeige&lt;br /&gt;
        	Cmod.addElement(&amp;quot;Encode Adresse &amp;quot; + servUrl + &amp;quot; in IP Adresse &amp;quot; + ipAdr);&lt;br /&gt;
        	System.out.println(&amp;quot;Endode Addresse in IP: &amp;quot; + ipAdr);   	&lt;br /&gt;
        	// Socket Addresse Deklarieren&lt;br /&gt;
        	SocketAddress sAdr = new InetSocketAddress(ipAdr,port);&lt;br /&gt;
        	// Deklarieren des ftpClients&lt;br /&gt;
        	ftp =  FtpClient.create();&lt;br /&gt;
 &lt;br /&gt;
        	// Benutzername Festelgen&lt;br /&gt;
        	String userName = jTextField3.getText();&lt;br /&gt;
 &lt;br /&gt;
        	//Verbindung Aufbauen&lt;br /&gt;
        	ftp.connect(sAdr);&lt;br /&gt;
        	//Wen Verbindung Besteht, einlogen&lt;br /&gt;
        	if(ftp.isConnected()==true){&lt;br /&gt;
            	// Console giebt aus das wir uns erfolgreich verbunden haben&lt;br /&gt;
            	Cmod.addElement(&amp;quot;Erfolgreich mit Server &amp;quot; + ipAdr + &amp;quot; Verbunden&amp;quot;);&lt;br /&gt;
            	System.out.println(&amp;quot;Erfolgreich mit Server &amp;quot; + ipAdr + &amp;quot; Verbunden&amp;quot;);&lt;br /&gt;
             	// Wir lassen Uns die Begrüßungsnachricht ausgeben&lt;br /&gt;
            	System.out.print(ftp.getWelcomeMsg());&lt;br /&gt;
            	Cmod.addElement(ftp.getWelcomeMsg());&lt;br /&gt;
            	// Hier Loggen wir uns in den Server ein&lt;br /&gt;
            	ftp.login(userName, jPasswordField1.getPassword());&lt;br /&gt;
            	// Wenn wir Eingelogt Sind &lt;br /&gt;
            	if(ftp.isLoggedIn()==true){&lt;br /&gt;
                	// Wir Bekommen eine nachricht vom Server das wir uns Erfolgreich Eingelogt sind&lt;br /&gt;
                	Cmod.addElement(&amp;quot;User &amp;quot; + userName + &amp;quot; Access Garanted&amp;quot;);&lt;br /&gt;
                	System.out.println(&amp;quot;User: &amp;quot; + userName + &amp;quot; ist erfolgreich im Server eingelogt&amp;quot;);&lt;br /&gt;
                	// Nun deklarieren wir unser Aktuelles Verzeichniss&lt;br /&gt;
                	String dir = ftp.getWorkingDirectory();&lt;br /&gt;
                	// Nun lesen wir die Verzeichnisse Aus&lt;br /&gt;
                	Iterator&amp;lt;FtpDirEntry&amp;gt; dirlist = ftp.listFiles(dir);&lt;br /&gt;
                	// Listview Model leeren&lt;br /&gt;
                	mod.removeAllElements();&lt;br /&gt;
                	// hinzufügen der neune Verzeichnisse&lt;br /&gt;
                	while(dirlist.hasNext()){&lt;br /&gt;
                   	// elemnt in die DirEntry hinzufügen&lt;br /&gt;
                   	direlement = dirlist.next();&lt;br /&gt;
                   	// Prüfen ob es ein Verzeichniss ist&lt;br /&gt;
                   	if(direlement.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                       	// in Model Hinzufügen&lt;br /&gt;
                       	mod.addElement(direlement.getName());&lt;br /&gt;
                   	}&lt;br /&gt;
                   	if(direlement.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                       	Fmod.addElement(direlement.getName());&lt;br /&gt;
                   	}&lt;br /&gt;
                	}&lt;br /&gt;
            	}&lt;br /&gt;
        	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
    	} catch (UnknownHostException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	} catch (FtpProtocolException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	} catch (IOException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Trennen Action Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
        try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
            ftp.close();&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das listview ClickAction Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// List Model Deklarieren&lt;br /&gt;
    	mod = (DefaultListModel) jList1.getModel();&lt;br /&gt;
    	// Prüfen ob der Client noch Verbunden ist &lt;br /&gt;
    	if(ftp.isConnected()==true){&lt;br /&gt;
        	//prüfen ob wir noch eingelogt sind&lt;br /&gt;
        	if(ftp.isLoggedIn()==true){&lt;br /&gt;
            	try {&lt;br /&gt;
                	//Verzeichniss Wechselen&lt;br /&gt;
                	ftp.changeDirectory(jList1.getSelectedValue().toString());&lt;br /&gt;
                	// System giebt aus das das Verzeichniss gewechselt wurde&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Verzeichniss Gewechelt nach: &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	System.out.print(&amp;quot;Verzeichniss Gewechselt nach :&amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	// wir Listen die Files in dem Neune Verzeichniss&lt;br /&gt;
                	Iterator&amp;lt;FtpDirEntry&amp;gt; dirs = ftp.listFiles(ftp.getWorkingDirectory());&lt;br /&gt;
                	// wir Löschen die Alten List items&lt;br /&gt;
                	mod.removeAllElements();&lt;br /&gt;
                	Fmod.removeAllElements();&lt;br /&gt;
                	// Wir Tragen die Verzeichniss ein&lt;br /&gt;
                	while(dirs.hasNext()){&lt;br /&gt;
                    	// wir Deklarieren das Element&lt;br /&gt;
                    	direlement=dirs.next();&lt;br /&gt;
                    	// Wir Prüfen ob das Element ein Verzeichniss ist&lt;br /&gt;
                    	if(direlement.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                        	// wir fügen den Verzeichniss namen in die Liste ein&lt;br /&gt;
                        	mod.addElement(direlement.getName());&lt;br /&gt;
                    	}&lt;br /&gt;
                    	else if(direlement.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                        	Fmod.addElement(direlement.getName());&lt;br /&gt;
                    	}&lt;br /&gt;
                	}&lt;br /&gt;
 &lt;br /&gt;
            	} catch (FtpProtocolException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (IOException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	}&lt;br /&gt;
        	}&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== das Multi Download ActionEvent ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Wir Deklarieren den FileChooser&lt;br /&gt;
    	JFileChooser sfd = new JFileChooser();&lt;br /&gt;
    	// Wir schreiben in das Datenfeld Bitte Wählen, da wir nur das Verzeichniss Benötigen&lt;br /&gt;
    	sfd.setSelectedFile(new File(&amp;quot;Bitte Wählen&amp;quot;));&lt;br /&gt;
    	//Wenn Ok Gedrückt Wurde&lt;br /&gt;
    	if(sfd.showSaveDialog(sfd) == JFileChooser.APPROVE_OPTION){&lt;br /&gt;
        	// list erstellen mit Unseren Ausgewählten Daten&lt;br /&gt;
        	Object[] flist = jList2.getSelectedValues();&lt;br /&gt;
        	for(int i = 0; i &amp;lt; flist.length; i++){&lt;br /&gt;
 &lt;br /&gt;
            	try {&lt;br /&gt;
                	// wir geben Aus welche File wir Downloaden möchten&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Get file &amp;quot; + flist[i] + &amp;quot; from Curent Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	System.out.println(&amp;quot;Get file &amp;quot; + flist[i] + &amp;quot; from Curent Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	// neue File Erstellen&lt;br /&gt;
                	File f = new File(sfd.getSelectedFile().getParent() + &amp;quot;/&amp;quot; + flist[i]);&lt;br /&gt;
                	// Output Stream Erstellen&lt;br /&gt;
                	FileOutputStream os = new FileOutputStream(f);&lt;br /&gt;
                	// Datei Herunterladen&lt;br /&gt;
                	ftp.getFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; +flist[i], os);&lt;br /&gt;
                	// Server Antwortet auf unsere Anfrage&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Server: &amp;quot; + ftp.getLastResponseString());&lt;br /&gt;
                	System.out.println(&amp;quot;Server: &amp;quot; + ftp.getLastResponseString());&lt;br /&gt;
            	} catch (FileNotFoundException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (FtpProtocolException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (IOException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        	}&lt;br /&gt;
        	// Ausgeben Das der Download Beendet wurde&lt;br /&gt;
        	Cmod.addElement(&amp;quot;Download Vorgang Beendet&amp;quot;);&lt;br /&gt;
        	System.out.println(&amp;quot;Download Vorgang Beendet&amp;quot;);&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Multi Upload Action Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
//Wir erstellen einen Filechooser zum Wählen der Daten&lt;br /&gt;
        JFileChooser ofd = new JFileChooser();&lt;br /&gt;
        //mehrfach auswahl Aktivieren&lt;br /&gt;
        ofd.setMultiSelectionEnabled(true);&lt;br /&gt;
        // Wenn im Filechooser auf Ok geklickt wird&lt;br /&gt;
        if(ofd.showOpenDialog(ofd)==JFileChooser.APPROVE_OPTION){&lt;br /&gt;
            // Wir Erstellen eine Filelist die unsere Gewählten files Beinhaltet&lt;br /&gt;
            File[] flist = ofd.getSelectedFiles();&lt;br /&gt;
            // Wir laden jede Einzelne File hoch&lt;br /&gt;
            for(int i = 0 ; i&amp;lt;flist.length;i++){&lt;br /&gt;
                try {&lt;br /&gt;
                    // hiier Deklarieren wir die File&lt;br /&gt;
                    File f = flist[i];&lt;br /&gt;
                    // Info für Console&lt;br /&gt;
                    Cmod.addElement(&amp;quot;Put File &amp;quot; + f.getName() + &amp;quot; in to &amp;quot; + ftp.getWorkingDirectory() + &amp;quot; directory&amp;quot;);&lt;br /&gt;
                    System.out.println(&amp;quot;Put File &amp;quot; + f.getName() + &amp;quot; in to &amp;quot; + ftp.getWorkingDirectory() + &amp;quot; directory&amp;quot;);&lt;br /&gt;
                    // Wir erstellen einen Fileinputstream zum Auslesen der Datei&lt;br /&gt;
                    FileInputStream is = new FileInputStream(f);&lt;br /&gt;
                    // Nun wird die Datei ochgeladen&lt;br /&gt;
                    ftp.putFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + f.getName(), is);&lt;br /&gt;
                    // Console giebt server Nachricht aus&lt;br /&gt;
                    Cmod.addElement(&amp;quot;Server: &amp;quot; +ftp.getLastResponseString());&lt;br /&gt;
                    System.out.println(&amp;quot;Server: &amp;quot; +ftp.getLastResponseString());&lt;br /&gt;
                } catch (FileNotFoundException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                } catch (FtpProtocolException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                } catch (IOException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                }&lt;br /&gt;
 &lt;br /&gt;
            }&lt;br /&gt;
            // Console giebt aus das Übertragung beendet Wurde&lt;br /&gt;
            Cmod.addElement(&amp;quot;Übertragung der Files &amp;quot; + flist.toString() + &amp;quot; Beendet&amp;quot;);&lt;br /&gt;
            System.out.println(&amp;quot;Übertragung der Files &amp;quot; + flist.toString() + &amp;quot; Beendet&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Übergerordneter Ordner Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Elemente Entfernen&lt;br /&gt;
            mod.removeAllElements();&lt;br /&gt;
            Fmod.removeAllElements();&lt;br /&gt;
 &lt;br /&gt;
            // FtpDirEntry Deklarieren&lt;br /&gt;
            FtpDirEntry dir;         &lt;br /&gt;
            // Verzeichniss Wechseln&lt;br /&gt;
            ftp.changeToParentDirectory();       &lt;br /&gt;
            // Neues Verzeichniss in Console Ausgeben&lt;br /&gt;
            Cmod.addElement(&amp;quot;Aktuelles Verzeichniss &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
            // Verzeichnisse in eine FtpDirEntry List hinzufügen&lt;br /&gt;
            Iterator&amp;lt;FtpDirEntry&amp;gt; dirlist = ftp.listFiles(ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
            // Jedes Verzeichniss Ausgeben&lt;br /&gt;
            while(dirlist.hasNext()){&lt;br /&gt;
                // dir elemnt Deklarieren&lt;br /&gt;
                dir=dirlist.next();&lt;br /&gt;
 &lt;br /&gt;
                // ist dir ein Ordner ?&lt;br /&gt;
                if(dir.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                    // wenn ja dan in List 1&lt;br /&gt;
                    mod.addElement(dir.getName());&lt;br /&gt;
                }&lt;br /&gt;
                // Ist dir eine Datei ?&lt;br /&gt;
                if(dir.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                    // wenn ja dan in List 2&lt;br /&gt;
                    Fmod.addElement(dir.getName());&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Datei Löschen Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
 &lt;br /&gt;
            // Wir Schreiben in die Console das Wir die Datei Löschen&lt;br /&gt;
            Cmod.addElement(&amp;quot;Delete File &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
            System.out.println(&amp;quot;Delete File &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
 &lt;br /&gt;
            // Wir Löschen die Datei&lt;br /&gt;
            ftp.deleteFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
 &lt;br /&gt;
            // Wir Geben die Server Antwort aus&lt;br /&gt;
            Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
            System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Verzeichniss Löschen Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
                // Wir Schreiben in die Console das Wir das Verzeichniss Löschen&lt;br /&gt;
                Cmod.addElement(&amp;quot;Delete Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                System.out.println(&amp;quot;Delete Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Löschen Das Verzeichniss&lt;br /&gt;
                ftp.removeDirectory(ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Geben die Server Antwort aus&lt;br /&gt;
                Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
                System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Verzeichniss Erstellen Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Deklarieren der Elemente&lt;br /&gt;
        JDialog dia = new JDialog();&lt;br /&gt;
        dia.setSize(375, 110);&lt;br /&gt;
        dia.setLayout(null);&lt;br /&gt;
        dia.setTitle(&amp;quot;Neues Verzeichniss anlegen&amp;quot;);&lt;br /&gt;
        JButton b = new JButton(&amp;quot;Erstellen&amp;quot;);&lt;br /&gt;
        final JTextField textfield = new JTextField();&lt;br /&gt;
 &lt;br /&gt;
        // Platzieren der Elemente&lt;br /&gt;
        textfield.setLocation(25, 25);&lt;br /&gt;
        textfield.setSize(200, 20);&lt;br /&gt;
        b.setLocation(235, 25);&lt;br /&gt;
        b.setSize(100,20);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        // Füge Controls Hinzu&lt;br /&gt;
        dia.add(textfield);&lt;br /&gt;
        dia.add(b);&lt;br /&gt;
        dia.setVisible(true);&lt;br /&gt;
 &lt;br /&gt;
        // Action Listner auf Button Legen&lt;br /&gt;
        b.addActionListener(new ActionListener(){&lt;br /&gt;
        public void actionPerformed(ActionEvent e){&lt;br /&gt;
            try {&lt;br /&gt;
 &lt;br /&gt;
                // Console Giebt aus das wir ein Verzeichniss Erstellen&lt;br /&gt;
                Cmod.addElement(&amp;quot;Create Dir &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
                System.out.println(&amp;quot;Create Dir &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Erstellen das Verzeichniss&lt;br /&gt;
                ftp.makeDirectory(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Geben die System Nachricht aus &lt;br /&gt;
                Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
                System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
            } catch (FtpProtocolException ex) {&lt;br /&gt;
                Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            } catch (IOException ex) {&lt;br /&gt;
                Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
        }&lt;br /&gt;
        });&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war der Letzte Teil des Toturials natürlich Könnte man noch X-Funktionen einfügen aber den Spaß überlasse ich euch. Auf Anfrage Sende ich Auch gerne Die Sourcecodes Zu, einfach im Forum eine PN an Andy16823.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quellen - Mitwirkende ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.das-java-forum.com/index.php?page=Thread&amp;amp;threadID=14 | Martin] - aus Anderem Forum - hat geholfen&lt;br /&gt;
&lt;br /&gt;
== Änderungen &amp;amp; Hystorie ==&lt;br /&gt;
Ich würde mich Freuen wenn man die Bareitung kennzeichnet also wie ich &lt;br /&gt;
&lt;br /&gt;
* 17.08.2013 - Bild Hinzugefügt - Andy16823&lt;/div&gt;</summary>
		<author><name>Andy16823</name></author>
	</entry>
	<entry>
		<id>https://wiki.byte-welt.net/index.php?title=Ftp-Client&amp;diff=5435</id>
		<title>Ftp-Client</title>
		<link rel="alternate" type="text/html" href="https://wiki.byte-welt.net/index.php?title=Ftp-Client&amp;diff=5435"/>
		<updated>2013-08-17T18:44:57Z</updated>

		<summary type="html">&lt;p&gt;Andy16823: hat „Ftp-Client“ nach „Ftp-Client Tutorial“ verschoben&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#WEITERLEITUNG [[Ftp-Client Tutorial]]&lt;/div&gt;</summary>
		<author><name>Andy16823</name></author>
	</entry>
	<entry>
		<id>https://wiki.byte-welt.net/index.php?title=Ftp-Client_Tutorial&amp;diff=5434</id>
		<title>Ftp-Client Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.byte-welt.net/index.php?title=Ftp-Client_Tutorial&amp;diff=5434"/>
		<updated>2013-08-17T18:44:57Z</updated>

		<summary type="html">&lt;p&gt;Andy16823: hat „Ftp-Client“ nach „Ftp-Client Tutorial“ verschoben&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Java Ftp  Client Tutorial =&lt;br /&gt;
&lt;br /&gt;
Mache mich mal drann um ein Ftp Tutorial zu Schreiben. In Unserem Toturial Erstellen wir einen Multi-Down/Upload Server. Wir Verwenden für Das Toturial die Mitgelieferte Klasse aus der Neusten Java Version. Für dieses Toturial solltest du die Grundlagen von Java Kennen. Auch Enfehle ich eine IDE zu Benutzen die über einen Designer Verfügt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Importierungen ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
import java.awt.List;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.net.InetAddress;&lt;br /&gt;
import java.net.InetSocketAddress;&lt;br /&gt;
import java.net.SocketAddress;&lt;br /&gt;
import java.net.UnknownHostException;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import javax.swing.DefaultListModel;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JDialog;&lt;br /&gt;
import javax.swing.JFileChooser;&lt;br /&gt;
import javax.swing.JTextField;&lt;br /&gt;
import javax.swing.UIManager;&lt;br /&gt;
import javax.swing.UnsupportedLookAndFeelException;&lt;br /&gt;
import javax.swing.tree.DefaultTreeModel;&lt;br /&gt;
import javax.swing.tree.MutableTreeNode;&lt;br /&gt;
import sun.net.ftp.FtpClient;&lt;br /&gt;
import sun.net.ftp.FtpDirEntry;&lt;br /&gt;
import sun.net.ftp.FtpProtocolException;&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Das Frame ==&lt;br /&gt;
Ich habe bei mir das Frame mit einer IDE Geschrieben die einen Desingner Verwendet, aber erfahrene Java Programmierer Sollten dies&lt;br /&gt;
auch in Wenigen Minuten mit einer IDE die Ohne Designer Arbeitet hinbekommen.&lt;br /&gt;
In dem Bild seht Ihr wie ich das Frame Aufgebaut habe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bild22.PNG|mini|hochkant=1.8|Das Frame]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie man Seht befinden sich auf dem Form 3 Listen und ein Menüstrip mit 2 Menüs, 3 textfelder, 1 Passwort Feld und ein Button. Ich habe folgende Listen Modelle den listen zugeordnet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Liste1 (DefaultListModel) mod (diese list zeigt die verzeichnisse an und Verfügt über ein Click ActionEvent&lt;br /&gt;
* Liste2 (DefaultListModel) Fmod (diese liste zeigt die Dateien An, aus dem Aktuellen FTP Verzeichniss.&lt;br /&gt;
* Liste3 (DefaultListModel) Cmod (diese liste dient als Interne Console)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Textfelder Werden folgt Verwendet&lt;br /&gt;
&lt;br /&gt;
* TextFeld1 Hier wird der Server Angegeben&lt;br /&gt;
* Textfeld2 Hier wird der Port Angegeben (Achtung der Port Muss Angegeben werden, bei vielen Servern ist der Standardt Port 21)&lt;br /&gt;
* Textfeld3 Hier Kommt der Benutzername Rein&lt;br /&gt;
* PasswordFeld1 Das Passwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Menü ist Aufgebaut in&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* File&lt;br /&gt;
&lt;br /&gt;
** Verbinden&lt;br /&gt;
** Trenen&lt;br /&gt;
** Daten Uploaden&lt;br /&gt;
** Daten Downloaden&lt;br /&gt;
** Daten Löschen&lt;br /&gt;
** Verzeichniss Löschen&lt;br /&gt;
** Verzeichniss Erstellen&lt;br /&gt;
&lt;br /&gt;
* Edit&lt;br /&gt;
** Übergeordneter Ordner&lt;br /&gt;
&lt;br /&gt;
== Die Codes ==&lt;br /&gt;
&lt;br /&gt;
=== Variabeln in der Klasse ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
//Suchen nach&lt;br /&gt;
public class main extends javax.swing.JFrame {&lt;br /&gt;
//hier diese Einträge Darunter Setzen&lt;br /&gt;
	public DefaultListModel mod;&lt;br /&gt;
	public FtpClient ftp;&lt;br /&gt;
	public FtpDirEntry direlement;&lt;br /&gt;
	public DefaultListModel Fmod;&lt;br /&gt;
	public DefaultListModel Cmod;&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Listen Initialisieren ===&lt;br /&gt;
Ich habe So die Listen Initalisiert&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
public main() {&lt;br /&gt;
initComponents();&lt;br /&gt;
// Hinzufügen&lt;br /&gt;
mod = new DefaultListModel();&lt;br /&gt;
jList1.setModel(mod);&lt;br /&gt;
Fmod = new DefaultListModel();&lt;br /&gt;
jList2.setModel(Fmod);&lt;br /&gt;
Cmod = new DefaultListModel();&lt;br /&gt;
jList3.setModel(Cmod);  &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Verbinden Action Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Elemente aus Modellen Löschen&lt;br /&gt;
        	Fmod.removeAllElements();&lt;br /&gt;
        	mod.removeAllElements();&lt;br /&gt;
        	// deklariren&lt;br /&gt;
        	// Deklarieren des List Models&lt;br /&gt;
        	mod = (DefaultListModel) jList1.getModel();&lt;br /&gt;
        	// holen des Inhaltes aus der Server Text Box&lt;br /&gt;
        	String servUrl=jTextField1.getText();&lt;br /&gt;
        	// holen des Inhaltes aus der Port Text Box&lt;br /&gt;
        	int port=Integer.parseInt(jTextField2.getText());&lt;br /&gt;
        	// Internet Adresse umwandln in IP&lt;br /&gt;
        	String ipAdr = InetAddress.getByName(servUrl).getHostAddress();&lt;br /&gt;
        	// Consolen Anzeige&lt;br /&gt;
        	Cmod.addElement(&amp;quot;Encode Adresse &amp;quot; + servUrl + &amp;quot; in IP Adresse &amp;quot; + ipAdr);&lt;br /&gt;
        	System.out.println(&amp;quot;Endode Addresse in IP: &amp;quot; + ipAdr);   	&lt;br /&gt;
        	// Socket Addresse Deklarieren&lt;br /&gt;
        	SocketAddress sAdr = new InetSocketAddress(ipAdr,port);&lt;br /&gt;
        	// Deklarieren des ftpClients&lt;br /&gt;
        	ftp =  FtpClient.create();&lt;br /&gt;
 &lt;br /&gt;
        	// Benutzername Festelgen&lt;br /&gt;
        	String userName = jTextField3.getText();&lt;br /&gt;
 &lt;br /&gt;
        	//Verbindung Aufbauen&lt;br /&gt;
        	ftp.connect(sAdr);&lt;br /&gt;
        	//Wen Verbindung Besteht, einlogen&lt;br /&gt;
        	if(ftp.isConnected()==true){&lt;br /&gt;
            	// Console giebt aus das wir uns erfolgreich verbunden haben&lt;br /&gt;
            	Cmod.addElement(&amp;quot;Erfolgreich mit Server &amp;quot; + ipAdr + &amp;quot; Verbunden&amp;quot;);&lt;br /&gt;
            	System.out.println(&amp;quot;Erfolgreich mit Server &amp;quot; + ipAdr + &amp;quot; Verbunden&amp;quot;);&lt;br /&gt;
             	// Wir lassen Uns die Begrüßungsnachricht ausgeben&lt;br /&gt;
            	System.out.print(ftp.getWelcomeMsg());&lt;br /&gt;
            	Cmod.addElement(ftp.getWelcomeMsg());&lt;br /&gt;
            	// Hier Loggen wir uns in den Server ein&lt;br /&gt;
            	ftp.login(userName, jPasswordField1.getPassword());&lt;br /&gt;
            	// Wenn wir Eingelogt Sind &lt;br /&gt;
            	if(ftp.isLoggedIn()==true){&lt;br /&gt;
                	// Wir Bekommen eine nachricht vom Server das wir uns Erfolgreich Eingelogt sind&lt;br /&gt;
                	Cmod.addElement(&amp;quot;User &amp;quot; + userName + &amp;quot; Access Garanted&amp;quot;);&lt;br /&gt;
                	System.out.println(&amp;quot;User: &amp;quot; + userName + &amp;quot; ist erfolgreich im Server eingelogt&amp;quot;);&lt;br /&gt;
                	// Nun deklarieren wir unser Aktuelles Verzeichniss&lt;br /&gt;
                	String dir = ftp.getWorkingDirectory();&lt;br /&gt;
                	// Nun lesen wir die Verzeichnisse Aus&lt;br /&gt;
                	Iterator&amp;lt;FtpDirEntry&amp;gt; dirlist = ftp.listFiles(dir);&lt;br /&gt;
                	// Listview Model leeren&lt;br /&gt;
                	mod.removeAllElements();&lt;br /&gt;
                	// hinzufügen der neune Verzeichnisse&lt;br /&gt;
                	while(dirlist.hasNext()){&lt;br /&gt;
                   	// elemnt in die DirEntry hinzufügen&lt;br /&gt;
                   	direlement = dirlist.next();&lt;br /&gt;
                   	// Prüfen ob es ein Verzeichniss ist&lt;br /&gt;
                   	if(direlement.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                       	// in Model Hinzufügen&lt;br /&gt;
                       	mod.addElement(direlement.getName());&lt;br /&gt;
                   	}&lt;br /&gt;
                   	if(direlement.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                       	Fmod.addElement(direlement.getName());&lt;br /&gt;
                   	}&lt;br /&gt;
                	}&lt;br /&gt;
            	}&lt;br /&gt;
        	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
    	} catch (UnknownHostException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	} catch (FtpProtocolException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	} catch (IOException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Trennen Action Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
        try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
            ftp.close();&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das listview ClickAction Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// List Model Deklarieren&lt;br /&gt;
    	mod = (DefaultListModel) jList1.getModel();&lt;br /&gt;
    	// Prüfen ob der Client noch Verbunden ist &lt;br /&gt;
    	if(ftp.isConnected()==true){&lt;br /&gt;
        	//prüfen ob wir noch eingelogt sind&lt;br /&gt;
        	if(ftp.isLoggedIn()==true){&lt;br /&gt;
            	try {&lt;br /&gt;
                	//Verzeichniss Wechselen&lt;br /&gt;
                	ftp.changeDirectory(jList1.getSelectedValue().toString());&lt;br /&gt;
                	// System giebt aus das das Verzeichniss gewechselt wurde&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Verzeichniss Gewechelt nach: &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	System.out.print(&amp;quot;Verzeichniss Gewechselt nach :&amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	// wir Listen die Files in dem Neune Verzeichniss&lt;br /&gt;
                	Iterator&amp;lt;FtpDirEntry&amp;gt; dirs = ftp.listFiles(ftp.getWorkingDirectory());&lt;br /&gt;
                	// wir Löschen die Alten List items&lt;br /&gt;
                	mod.removeAllElements();&lt;br /&gt;
                	Fmod.removeAllElements();&lt;br /&gt;
                	// Wir Tragen die Verzeichniss ein&lt;br /&gt;
                	while(dirs.hasNext()){&lt;br /&gt;
                    	// wir Deklarieren das Element&lt;br /&gt;
                    	direlement=dirs.next();&lt;br /&gt;
                    	// Wir Prüfen ob das Element ein Verzeichniss ist&lt;br /&gt;
                    	if(direlement.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                        	// wir fügen den Verzeichniss namen in die Liste ein&lt;br /&gt;
                        	mod.addElement(direlement.getName());&lt;br /&gt;
                    	}&lt;br /&gt;
                    	else if(direlement.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                        	Fmod.addElement(direlement.getName());&lt;br /&gt;
                    	}&lt;br /&gt;
                	}&lt;br /&gt;
 &lt;br /&gt;
            	} catch (FtpProtocolException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (IOException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	}&lt;br /&gt;
        	}&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== das Multi Download ActionEvent ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Wir Deklarieren den FileChooser&lt;br /&gt;
    	JFileChooser sfd = new JFileChooser();&lt;br /&gt;
    	// Wir schreiben in das Datenfeld Bitte Wählen, da wir nur das Verzeichniss Benötigen&lt;br /&gt;
    	sfd.setSelectedFile(new File(&amp;quot;Bitte Wählen&amp;quot;));&lt;br /&gt;
    	//Wenn Ok Gedrückt Wurde&lt;br /&gt;
    	if(sfd.showSaveDialog(sfd) == JFileChooser.APPROVE_OPTION){&lt;br /&gt;
        	// list erstellen mit Unseren Ausgewählten Daten&lt;br /&gt;
        	Object[] flist = jList2.getSelectedValues();&lt;br /&gt;
        	for(int i = 0; i &amp;lt; flist.length; i++){&lt;br /&gt;
 &lt;br /&gt;
            	try {&lt;br /&gt;
                	// wir geben Aus welche File wir Downloaden möchten&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Get file &amp;quot; + flist[i] + &amp;quot; from Curent Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	System.out.println(&amp;quot;Get file &amp;quot; + flist[i] + &amp;quot; from Curent Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	// neue File Erstellen&lt;br /&gt;
                	File f = new File(sfd.getSelectedFile().getParent() + &amp;quot;/&amp;quot; + flist[i]);&lt;br /&gt;
                	// Output Stream Erstellen&lt;br /&gt;
                	FileOutputStream os = new FileOutputStream(f);&lt;br /&gt;
                	// Datei Herunterladen&lt;br /&gt;
                	ftp.getFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; +flist[i], os);&lt;br /&gt;
                	// Server Antwortet auf unsere Anfrage&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Server: &amp;quot; + ftp.getLastResponseString());&lt;br /&gt;
                	System.out.println(&amp;quot;Server: &amp;quot; + ftp.getLastResponseString());&lt;br /&gt;
            	} catch (FileNotFoundException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (FtpProtocolException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (IOException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        	}&lt;br /&gt;
        	// Ausgeben Das der Download Beendet wurde&lt;br /&gt;
        	Cmod.addElement(&amp;quot;Download Vorgang Beendet&amp;quot;);&lt;br /&gt;
        	System.out.println(&amp;quot;Download Vorgang Beendet&amp;quot;);&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Multi Upload Action Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
//Wir erstellen einen Filechooser zum Wählen der Daten&lt;br /&gt;
        JFileChooser ofd = new JFileChooser();&lt;br /&gt;
        //mehrfach auswahl Aktivieren&lt;br /&gt;
        ofd.setMultiSelectionEnabled(true);&lt;br /&gt;
        // Wenn im Filechooser auf Ok geklickt wird&lt;br /&gt;
        if(ofd.showOpenDialog(ofd)==JFileChooser.APPROVE_OPTION){&lt;br /&gt;
            // Wir Erstellen eine Filelist die unsere Gewählten files Beinhaltet&lt;br /&gt;
            File[] flist = ofd.getSelectedFiles();&lt;br /&gt;
            // Wir laden jede Einzelne File hoch&lt;br /&gt;
            for(int i = 0 ; i&amp;lt;flist.length;i++){&lt;br /&gt;
                try {&lt;br /&gt;
                    // hiier Deklarieren wir die File&lt;br /&gt;
                    File f = flist[i];&lt;br /&gt;
                    // Info für Console&lt;br /&gt;
                    Cmod.addElement(&amp;quot;Put File &amp;quot; + f.getName() + &amp;quot; in to &amp;quot; + ftp.getWorkingDirectory() + &amp;quot; directory&amp;quot;);&lt;br /&gt;
                    System.out.println(&amp;quot;Put File &amp;quot; + f.getName() + &amp;quot; in to &amp;quot; + ftp.getWorkingDirectory() + &amp;quot; directory&amp;quot;);&lt;br /&gt;
                    // Wir erstellen einen Fileinputstream zum Auslesen der Datei&lt;br /&gt;
                    FileInputStream is = new FileInputStream(f);&lt;br /&gt;
                    // Nun wird die Datei ochgeladen&lt;br /&gt;
                    ftp.putFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + f.getName(), is);&lt;br /&gt;
                    // Console giebt server Nachricht aus&lt;br /&gt;
                    Cmod.addElement(&amp;quot;Server: &amp;quot; +ftp.getLastResponseString());&lt;br /&gt;
                    System.out.println(&amp;quot;Server: &amp;quot; +ftp.getLastResponseString());&lt;br /&gt;
                } catch (FileNotFoundException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                } catch (FtpProtocolException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                } catch (IOException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                }&lt;br /&gt;
 &lt;br /&gt;
            }&lt;br /&gt;
            // Console giebt aus das Übertragung beendet Wurde&lt;br /&gt;
            Cmod.addElement(&amp;quot;Übertragung der Files &amp;quot; + flist.toString() + &amp;quot; Beendet&amp;quot;);&lt;br /&gt;
            System.out.println(&amp;quot;Übertragung der Files &amp;quot; + flist.toString() + &amp;quot; Beendet&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Übergerordneter Ordner Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Elemente Entfernen&lt;br /&gt;
            mod.removeAllElements();&lt;br /&gt;
            Fmod.removeAllElements();&lt;br /&gt;
 &lt;br /&gt;
            // FtpDirEntry Deklarieren&lt;br /&gt;
            FtpDirEntry dir;         &lt;br /&gt;
            // Verzeichniss Wechseln&lt;br /&gt;
            ftp.changeToParentDirectory();       &lt;br /&gt;
            // Neues Verzeichniss in Console Ausgeben&lt;br /&gt;
            Cmod.addElement(&amp;quot;Aktuelles Verzeichniss &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
            // Verzeichnisse in eine FtpDirEntry List hinzufügen&lt;br /&gt;
            Iterator&amp;lt;FtpDirEntry&amp;gt; dirlist = ftp.listFiles(ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
            // Jedes Verzeichniss Ausgeben&lt;br /&gt;
            while(dirlist.hasNext()){&lt;br /&gt;
                // dir elemnt Deklarieren&lt;br /&gt;
                dir=dirlist.next();&lt;br /&gt;
 &lt;br /&gt;
                // ist dir ein Ordner ?&lt;br /&gt;
                if(dir.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                    // wenn ja dan in List 1&lt;br /&gt;
                    mod.addElement(dir.getName());&lt;br /&gt;
                }&lt;br /&gt;
                // Ist dir eine Datei ?&lt;br /&gt;
                if(dir.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                    // wenn ja dan in List 2&lt;br /&gt;
                    Fmod.addElement(dir.getName());&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Datei Löschen Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
 &lt;br /&gt;
            // Wir Schreiben in die Console das Wir die Datei Löschen&lt;br /&gt;
            Cmod.addElement(&amp;quot;Delete File &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
            System.out.println(&amp;quot;Delete File &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
 &lt;br /&gt;
            // Wir Löschen die Datei&lt;br /&gt;
            ftp.deleteFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
 &lt;br /&gt;
            // Wir Geben die Server Antwort aus&lt;br /&gt;
            Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
            System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Verzeichniss Löschen Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
                // Wir Schreiben in die Console das Wir das Verzeichniss Löschen&lt;br /&gt;
                Cmod.addElement(&amp;quot;Delete Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                System.out.println(&amp;quot;Delete Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Löschen Das Verzeichniss&lt;br /&gt;
                ftp.removeDirectory(ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Geben die Server Antwort aus&lt;br /&gt;
                Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
                System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Verzeichniss Erstellen Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Deklarieren der Elemente&lt;br /&gt;
        JDialog dia = new JDialog();&lt;br /&gt;
        dia.setSize(375, 110);&lt;br /&gt;
        dia.setLayout(null);&lt;br /&gt;
        dia.setTitle(&amp;quot;Neues Verzeichniss anlegen&amp;quot;);&lt;br /&gt;
        JButton b = new JButton(&amp;quot;Erstellen&amp;quot;);&lt;br /&gt;
        final JTextField textfield = new JTextField();&lt;br /&gt;
 &lt;br /&gt;
        // Platzieren der Elemente&lt;br /&gt;
        textfield.setLocation(25, 25);&lt;br /&gt;
        textfield.setSize(200, 20);&lt;br /&gt;
        b.setLocation(235, 25);&lt;br /&gt;
        b.setSize(100,20);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        // Füge Controls Hinzu&lt;br /&gt;
        dia.add(textfield);&lt;br /&gt;
        dia.add(b);&lt;br /&gt;
        dia.setVisible(true);&lt;br /&gt;
 &lt;br /&gt;
        // Action Listner auf Button Legen&lt;br /&gt;
        b.addActionListener(new ActionListener(){&lt;br /&gt;
        public void actionPerformed(ActionEvent e){&lt;br /&gt;
            try {&lt;br /&gt;
 &lt;br /&gt;
                // Console Giebt aus das wir ein Verzeichniss Erstellen&lt;br /&gt;
                Cmod.addElement(&amp;quot;Create Dir &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
                System.out.println(&amp;quot;Create Dir &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Erstellen das Verzeichniss&lt;br /&gt;
                ftp.makeDirectory(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Geben die System Nachricht aus &lt;br /&gt;
                Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
                System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
            } catch (FtpProtocolException ex) {&lt;br /&gt;
                Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            } catch (IOException ex) {&lt;br /&gt;
                Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
        }&lt;br /&gt;
        });&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war der Letzte Teil des Toturials natürlich Könnte man noch X-Funktionen einfügen aber den Spaß überlasse ich euch. Auf Anfrage Sende ich Auch gerne Die Sourcecodes Zu, einfach im Forum eine PN an Andy16823.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Änderungen &amp;amp; Hystorie ==&lt;br /&gt;
Ich würde mich Freuen wenn man die Bareitung kennzeichnet also wie ich &lt;br /&gt;
&lt;br /&gt;
* 17.08.2013 - Bild Hinzugefügt - Andy16823&lt;/div&gt;</summary>
		<author><name>Andy16823</name></author>
	</entry>
	<entry>
		<id>https://wiki.byte-welt.net/index.php?title=Ftp-Client_Tutorial&amp;diff=5433</id>
		<title>Ftp-Client Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.byte-welt.net/index.php?title=Ftp-Client_Tutorial&amp;diff=5433"/>
		<updated>2013-08-17T18:37:17Z</updated>

		<summary type="html">&lt;p&gt;Andy16823: /* Das Verzeichniss Erstellen Event */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Java Ftp  Client Tutorial =&lt;br /&gt;
&lt;br /&gt;
Mache mich mal drann um ein Ftp Tutorial zu Schreiben. In Unserem Toturial Erstellen wir einen Multi-Down/Upload Server. Wir Verwenden für Das Toturial die Mitgelieferte Klasse aus der Neusten Java Version. Für dieses Toturial solltest du die Grundlagen von Java Kennen. Auch Enfehle ich eine IDE zu Benutzen die über einen Designer Verfügt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Importierungen ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
import java.awt.List;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.net.InetAddress;&lt;br /&gt;
import java.net.InetSocketAddress;&lt;br /&gt;
import java.net.SocketAddress;&lt;br /&gt;
import java.net.UnknownHostException;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import javax.swing.DefaultListModel;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JDialog;&lt;br /&gt;
import javax.swing.JFileChooser;&lt;br /&gt;
import javax.swing.JTextField;&lt;br /&gt;
import javax.swing.UIManager;&lt;br /&gt;
import javax.swing.UnsupportedLookAndFeelException;&lt;br /&gt;
import javax.swing.tree.DefaultTreeModel;&lt;br /&gt;
import javax.swing.tree.MutableTreeNode;&lt;br /&gt;
import sun.net.ftp.FtpClient;&lt;br /&gt;
import sun.net.ftp.FtpDirEntry;&lt;br /&gt;
import sun.net.ftp.FtpProtocolException;&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Das Frame ==&lt;br /&gt;
Ich habe bei mir das Frame mit einer IDE Geschrieben die einen Desingner Verwendet, aber erfahrene Java Programmierer Sollten dies&lt;br /&gt;
auch in Wenigen Minuten mit einer IDE die Ohne Designer Arbeitet hinbekommen.&lt;br /&gt;
In dem Bild seht Ihr wie ich das Frame Aufgebaut habe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bild22.PNG|mini|hochkant=1.8|Das Frame]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie man Seht befinden sich auf dem Form 3 Listen und ein Menüstrip mit 2 Menüs, 3 textfelder, 1 Passwort Feld und ein Button. Ich habe folgende Listen Modelle den listen zugeordnet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Liste1 (DefaultListModel) mod (diese list zeigt die verzeichnisse an und Verfügt über ein Click ActionEvent&lt;br /&gt;
* Liste2 (DefaultListModel) Fmod (diese liste zeigt die Dateien An, aus dem Aktuellen FTP Verzeichniss.&lt;br /&gt;
* Liste3 (DefaultListModel) Cmod (diese liste dient als Interne Console)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Textfelder Werden folgt Verwendet&lt;br /&gt;
&lt;br /&gt;
* TextFeld1 Hier wird der Server Angegeben&lt;br /&gt;
* Textfeld2 Hier wird der Port Angegeben (Achtung der Port Muss Angegeben werden, bei vielen Servern ist der Standardt Port 21)&lt;br /&gt;
* Textfeld3 Hier Kommt der Benutzername Rein&lt;br /&gt;
* PasswordFeld1 Das Passwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Menü ist Aufgebaut in&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* File&lt;br /&gt;
&lt;br /&gt;
** Verbinden&lt;br /&gt;
** Trenen&lt;br /&gt;
** Daten Uploaden&lt;br /&gt;
** Daten Downloaden&lt;br /&gt;
** Daten Löschen&lt;br /&gt;
** Verzeichniss Löschen&lt;br /&gt;
** Verzeichniss Erstellen&lt;br /&gt;
&lt;br /&gt;
* Edit&lt;br /&gt;
** Übergeordneter Ordner&lt;br /&gt;
&lt;br /&gt;
== Die Codes ==&lt;br /&gt;
&lt;br /&gt;
=== Variabeln in der Klasse ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
//Suchen nach&lt;br /&gt;
public class main extends javax.swing.JFrame {&lt;br /&gt;
//hier diese Einträge Darunter Setzen&lt;br /&gt;
	public DefaultListModel mod;&lt;br /&gt;
	public FtpClient ftp;&lt;br /&gt;
	public FtpDirEntry direlement;&lt;br /&gt;
	public DefaultListModel Fmod;&lt;br /&gt;
	public DefaultListModel Cmod;&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Listen Initialisieren ===&lt;br /&gt;
Ich habe So die Listen Initalisiert&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
public main() {&lt;br /&gt;
initComponents();&lt;br /&gt;
// Hinzufügen&lt;br /&gt;
mod = new DefaultListModel();&lt;br /&gt;
jList1.setModel(mod);&lt;br /&gt;
Fmod = new DefaultListModel();&lt;br /&gt;
jList2.setModel(Fmod);&lt;br /&gt;
Cmod = new DefaultListModel();&lt;br /&gt;
jList3.setModel(Cmod);  &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Verbinden Action Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Elemente aus Modellen Löschen&lt;br /&gt;
        	Fmod.removeAllElements();&lt;br /&gt;
        	mod.removeAllElements();&lt;br /&gt;
        	// deklariren&lt;br /&gt;
        	// Deklarieren des List Models&lt;br /&gt;
        	mod = (DefaultListModel) jList1.getModel();&lt;br /&gt;
        	// holen des Inhaltes aus der Server Text Box&lt;br /&gt;
        	String servUrl=jTextField1.getText();&lt;br /&gt;
        	// holen des Inhaltes aus der Port Text Box&lt;br /&gt;
        	int port=Integer.parseInt(jTextField2.getText());&lt;br /&gt;
        	// Internet Adresse umwandln in IP&lt;br /&gt;
        	String ipAdr = InetAddress.getByName(servUrl).getHostAddress();&lt;br /&gt;
        	// Consolen Anzeige&lt;br /&gt;
        	Cmod.addElement(&amp;quot;Encode Adresse &amp;quot; + servUrl + &amp;quot; in IP Adresse &amp;quot; + ipAdr);&lt;br /&gt;
        	System.out.println(&amp;quot;Endode Addresse in IP: &amp;quot; + ipAdr);   	&lt;br /&gt;
        	// Socket Addresse Deklarieren&lt;br /&gt;
        	SocketAddress sAdr = new InetSocketAddress(ipAdr,port);&lt;br /&gt;
        	// Deklarieren des ftpClients&lt;br /&gt;
        	ftp =  FtpClient.create();&lt;br /&gt;
 &lt;br /&gt;
        	// Benutzername Festelgen&lt;br /&gt;
        	String userName = jTextField3.getText();&lt;br /&gt;
 &lt;br /&gt;
        	//Verbindung Aufbauen&lt;br /&gt;
        	ftp.connect(sAdr);&lt;br /&gt;
        	//Wen Verbindung Besteht, einlogen&lt;br /&gt;
        	if(ftp.isConnected()==true){&lt;br /&gt;
            	// Console giebt aus das wir uns erfolgreich verbunden haben&lt;br /&gt;
            	Cmod.addElement(&amp;quot;Erfolgreich mit Server &amp;quot; + ipAdr + &amp;quot; Verbunden&amp;quot;);&lt;br /&gt;
            	System.out.println(&amp;quot;Erfolgreich mit Server &amp;quot; + ipAdr + &amp;quot; Verbunden&amp;quot;);&lt;br /&gt;
             	// Wir lassen Uns die Begrüßungsnachricht ausgeben&lt;br /&gt;
            	System.out.print(ftp.getWelcomeMsg());&lt;br /&gt;
            	Cmod.addElement(ftp.getWelcomeMsg());&lt;br /&gt;
            	// Hier Loggen wir uns in den Server ein&lt;br /&gt;
            	ftp.login(userName, jPasswordField1.getPassword());&lt;br /&gt;
            	// Wenn wir Eingelogt Sind &lt;br /&gt;
            	if(ftp.isLoggedIn()==true){&lt;br /&gt;
                	// Wir Bekommen eine nachricht vom Server das wir uns Erfolgreich Eingelogt sind&lt;br /&gt;
                	Cmod.addElement(&amp;quot;User &amp;quot; + userName + &amp;quot; Access Garanted&amp;quot;);&lt;br /&gt;
                	System.out.println(&amp;quot;User: &amp;quot; + userName + &amp;quot; ist erfolgreich im Server eingelogt&amp;quot;);&lt;br /&gt;
                	// Nun deklarieren wir unser Aktuelles Verzeichniss&lt;br /&gt;
                	String dir = ftp.getWorkingDirectory();&lt;br /&gt;
                	// Nun lesen wir die Verzeichnisse Aus&lt;br /&gt;
                	Iterator&amp;lt;FtpDirEntry&amp;gt; dirlist = ftp.listFiles(dir);&lt;br /&gt;
                	// Listview Model leeren&lt;br /&gt;
                	mod.removeAllElements();&lt;br /&gt;
                	// hinzufügen der neune Verzeichnisse&lt;br /&gt;
                	while(dirlist.hasNext()){&lt;br /&gt;
                   	// elemnt in die DirEntry hinzufügen&lt;br /&gt;
                   	direlement = dirlist.next();&lt;br /&gt;
                   	// Prüfen ob es ein Verzeichniss ist&lt;br /&gt;
                   	if(direlement.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                       	// in Model Hinzufügen&lt;br /&gt;
                       	mod.addElement(direlement.getName());&lt;br /&gt;
                   	}&lt;br /&gt;
                   	if(direlement.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                       	Fmod.addElement(direlement.getName());&lt;br /&gt;
                   	}&lt;br /&gt;
                	}&lt;br /&gt;
            	}&lt;br /&gt;
        	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
    	} catch (UnknownHostException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	} catch (FtpProtocolException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	} catch (IOException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Trennen Action Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
        try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
            ftp.close();&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das listview ClickAction Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// List Model Deklarieren&lt;br /&gt;
    	mod = (DefaultListModel) jList1.getModel();&lt;br /&gt;
    	// Prüfen ob der Client noch Verbunden ist &lt;br /&gt;
    	if(ftp.isConnected()==true){&lt;br /&gt;
        	//prüfen ob wir noch eingelogt sind&lt;br /&gt;
        	if(ftp.isLoggedIn()==true){&lt;br /&gt;
            	try {&lt;br /&gt;
                	//Verzeichniss Wechselen&lt;br /&gt;
                	ftp.changeDirectory(jList1.getSelectedValue().toString());&lt;br /&gt;
                	// System giebt aus das das Verzeichniss gewechselt wurde&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Verzeichniss Gewechelt nach: &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	System.out.print(&amp;quot;Verzeichniss Gewechselt nach :&amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	// wir Listen die Files in dem Neune Verzeichniss&lt;br /&gt;
                	Iterator&amp;lt;FtpDirEntry&amp;gt; dirs = ftp.listFiles(ftp.getWorkingDirectory());&lt;br /&gt;
                	// wir Löschen die Alten List items&lt;br /&gt;
                	mod.removeAllElements();&lt;br /&gt;
                	Fmod.removeAllElements();&lt;br /&gt;
                	// Wir Tragen die Verzeichniss ein&lt;br /&gt;
                	while(dirs.hasNext()){&lt;br /&gt;
                    	// wir Deklarieren das Element&lt;br /&gt;
                    	direlement=dirs.next();&lt;br /&gt;
                    	// Wir Prüfen ob das Element ein Verzeichniss ist&lt;br /&gt;
                    	if(direlement.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                        	// wir fügen den Verzeichniss namen in die Liste ein&lt;br /&gt;
                        	mod.addElement(direlement.getName());&lt;br /&gt;
                    	}&lt;br /&gt;
                    	else if(direlement.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                        	Fmod.addElement(direlement.getName());&lt;br /&gt;
                    	}&lt;br /&gt;
                	}&lt;br /&gt;
 &lt;br /&gt;
            	} catch (FtpProtocolException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (IOException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	}&lt;br /&gt;
        	}&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== das Multi Download ActionEvent ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Wir Deklarieren den FileChooser&lt;br /&gt;
    	JFileChooser sfd = new JFileChooser();&lt;br /&gt;
    	// Wir schreiben in das Datenfeld Bitte Wählen, da wir nur das Verzeichniss Benötigen&lt;br /&gt;
    	sfd.setSelectedFile(new File(&amp;quot;Bitte Wählen&amp;quot;));&lt;br /&gt;
    	//Wenn Ok Gedrückt Wurde&lt;br /&gt;
    	if(sfd.showSaveDialog(sfd) == JFileChooser.APPROVE_OPTION){&lt;br /&gt;
        	// list erstellen mit Unseren Ausgewählten Daten&lt;br /&gt;
        	Object[] flist = jList2.getSelectedValues();&lt;br /&gt;
        	for(int i = 0; i &amp;lt; flist.length; i++){&lt;br /&gt;
 &lt;br /&gt;
            	try {&lt;br /&gt;
                	// wir geben Aus welche File wir Downloaden möchten&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Get file &amp;quot; + flist[i] + &amp;quot; from Curent Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	System.out.println(&amp;quot;Get file &amp;quot; + flist[i] + &amp;quot; from Curent Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	// neue File Erstellen&lt;br /&gt;
                	File f = new File(sfd.getSelectedFile().getParent() + &amp;quot;/&amp;quot; + flist[i]);&lt;br /&gt;
                	// Output Stream Erstellen&lt;br /&gt;
                	FileOutputStream os = new FileOutputStream(f);&lt;br /&gt;
                	// Datei Herunterladen&lt;br /&gt;
                	ftp.getFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; +flist[i], os);&lt;br /&gt;
                	// Server Antwortet auf unsere Anfrage&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Server: &amp;quot; + ftp.getLastResponseString());&lt;br /&gt;
                	System.out.println(&amp;quot;Server: &amp;quot; + ftp.getLastResponseString());&lt;br /&gt;
            	} catch (FileNotFoundException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (FtpProtocolException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (IOException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        	}&lt;br /&gt;
        	// Ausgeben Das der Download Beendet wurde&lt;br /&gt;
        	Cmod.addElement(&amp;quot;Download Vorgang Beendet&amp;quot;);&lt;br /&gt;
        	System.out.println(&amp;quot;Download Vorgang Beendet&amp;quot;);&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Multi Upload Action Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
//Wir erstellen einen Filechooser zum Wählen der Daten&lt;br /&gt;
        JFileChooser ofd = new JFileChooser();&lt;br /&gt;
        //mehrfach auswahl Aktivieren&lt;br /&gt;
        ofd.setMultiSelectionEnabled(true);&lt;br /&gt;
        // Wenn im Filechooser auf Ok geklickt wird&lt;br /&gt;
        if(ofd.showOpenDialog(ofd)==JFileChooser.APPROVE_OPTION){&lt;br /&gt;
            // Wir Erstellen eine Filelist die unsere Gewählten files Beinhaltet&lt;br /&gt;
            File[] flist = ofd.getSelectedFiles();&lt;br /&gt;
            // Wir laden jede Einzelne File hoch&lt;br /&gt;
            for(int i = 0 ; i&amp;lt;flist.length;i++){&lt;br /&gt;
                try {&lt;br /&gt;
                    // hiier Deklarieren wir die File&lt;br /&gt;
                    File f = flist[i];&lt;br /&gt;
                    // Info für Console&lt;br /&gt;
                    Cmod.addElement(&amp;quot;Put File &amp;quot; + f.getName() + &amp;quot; in to &amp;quot; + ftp.getWorkingDirectory() + &amp;quot; directory&amp;quot;);&lt;br /&gt;
                    System.out.println(&amp;quot;Put File &amp;quot; + f.getName() + &amp;quot; in to &amp;quot; + ftp.getWorkingDirectory() + &amp;quot; directory&amp;quot;);&lt;br /&gt;
                    // Wir erstellen einen Fileinputstream zum Auslesen der Datei&lt;br /&gt;
                    FileInputStream is = new FileInputStream(f);&lt;br /&gt;
                    // Nun wird die Datei ochgeladen&lt;br /&gt;
                    ftp.putFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + f.getName(), is);&lt;br /&gt;
                    // Console giebt server Nachricht aus&lt;br /&gt;
                    Cmod.addElement(&amp;quot;Server: &amp;quot; +ftp.getLastResponseString());&lt;br /&gt;
                    System.out.println(&amp;quot;Server: &amp;quot; +ftp.getLastResponseString());&lt;br /&gt;
                } catch (FileNotFoundException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                } catch (FtpProtocolException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                } catch (IOException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                }&lt;br /&gt;
 &lt;br /&gt;
            }&lt;br /&gt;
            // Console giebt aus das Übertragung beendet Wurde&lt;br /&gt;
            Cmod.addElement(&amp;quot;Übertragung der Files &amp;quot; + flist.toString() + &amp;quot; Beendet&amp;quot;);&lt;br /&gt;
            System.out.println(&amp;quot;Übertragung der Files &amp;quot; + flist.toString() + &amp;quot; Beendet&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Übergerordneter Ordner Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Elemente Entfernen&lt;br /&gt;
            mod.removeAllElements();&lt;br /&gt;
            Fmod.removeAllElements();&lt;br /&gt;
 &lt;br /&gt;
            // FtpDirEntry Deklarieren&lt;br /&gt;
            FtpDirEntry dir;         &lt;br /&gt;
            // Verzeichniss Wechseln&lt;br /&gt;
            ftp.changeToParentDirectory();       &lt;br /&gt;
            // Neues Verzeichniss in Console Ausgeben&lt;br /&gt;
            Cmod.addElement(&amp;quot;Aktuelles Verzeichniss &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
            // Verzeichnisse in eine FtpDirEntry List hinzufügen&lt;br /&gt;
            Iterator&amp;lt;FtpDirEntry&amp;gt; dirlist = ftp.listFiles(ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
            // Jedes Verzeichniss Ausgeben&lt;br /&gt;
            while(dirlist.hasNext()){&lt;br /&gt;
                // dir elemnt Deklarieren&lt;br /&gt;
                dir=dirlist.next();&lt;br /&gt;
 &lt;br /&gt;
                // ist dir ein Ordner ?&lt;br /&gt;
                if(dir.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                    // wenn ja dan in List 1&lt;br /&gt;
                    mod.addElement(dir.getName());&lt;br /&gt;
                }&lt;br /&gt;
                // Ist dir eine Datei ?&lt;br /&gt;
                if(dir.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                    // wenn ja dan in List 2&lt;br /&gt;
                    Fmod.addElement(dir.getName());&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Datei Löschen Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
 &lt;br /&gt;
            // Wir Schreiben in die Console das Wir die Datei Löschen&lt;br /&gt;
            Cmod.addElement(&amp;quot;Delete File &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
            System.out.println(&amp;quot;Delete File &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
 &lt;br /&gt;
            // Wir Löschen die Datei&lt;br /&gt;
            ftp.deleteFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
 &lt;br /&gt;
            // Wir Geben die Server Antwort aus&lt;br /&gt;
            Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
            System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Verzeichniss Löschen Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
                // Wir Schreiben in die Console das Wir das Verzeichniss Löschen&lt;br /&gt;
                Cmod.addElement(&amp;quot;Delete Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                System.out.println(&amp;quot;Delete Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Löschen Das Verzeichniss&lt;br /&gt;
                ftp.removeDirectory(ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Geben die Server Antwort aus&lt;br /&gt;
                Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
                System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Verzeichniss Erstellen Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Deklarieren der Elemente&lt;br /&gt;
        JDialog dia = new JDialog();&lt;br /&gt;
        dia.setSize(375, 110);&lt;br /&gt;
        dia.setLayout(null);&lt;br /&gt;
        dia.setTitle(&amp;quot;Neues Verzeichniss anlegen&amp;quot;);&lt;br /&gt;
        JButton b = new JButton(&amp;quot;Erstellen&amp;quot;);&lt;br /&gt;
        final JTextField textfield = new JTextField();&lt;br /&gt;
 &lt;br /&gt;
        // Platzieren der Elemente&lt;br /&gt;
        textfield.setLocation(25, 25);&lt;br /&gt;
        textfield.setSize(200, 20);&lt;br /&gt;
        b.setLocation(235, 25);&lt;br /&gt;
        b.setSize(100,20);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        // Füge Controls Hinzu&lt;br /&gt;
        dia.add(textfield);&lt;br /&gt;
        dia.add(b);&lt;br /&gt;
        dia.setVisible(true);&lt;br /&gt;
 &lt;br /&gt;
        // Action Listner auf Button Legen&lt;br /&gt;
        b.addActionListener(new ActionListener(){&lt;br /&gt;
        public void actionPerformed(ActionEvent e){&lt;br /&gt;
            try {&lt;br /&gt;
 &lt;br /&gt;
                // Console Giebt aus das wir ein Verzeichniss Erstellen&lt;br /&gt;
                Cmod.addElement(&amp;quot;Create Dir &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
                System.out.println(&amp;quot;Create Dir &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Erstellen das Verzeichniss&lt;br /&gt;
                ftp.makeDirectory(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Geben die System Nachricht aus &lt;br /&gt;
                Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
                System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
            } catch (FtpProtocolException ex) {&lt;br /&gt;
                Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            } catch (IOException ex) {&lt;br /&gt;
                Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
        }&lt;br /&gt;
        });&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war der Letzte Teil des Toturials natürlich Könnte man noch X-Funktionen einfügen aber den Spaß überlasse ich euch. Auf Anfrage Sende ich Auch gerne Die Sourcecodes Zu, einfach im Forum eine PN an Andy16823.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Änderungen &amp;amp; Hystorie ==&lt;br /&gt;
Ich würde mich Freuen wenn man die Bareitung kennzeichnet also wie ich &lt;br /&gt;
&lt;br /&gt;
* 17.08.2013 - Bild Hinzugefügt - Andy16823&lt;/div&gt;</summary>
		<author><name>Andy16823</name></author>
	</entry>
	<entry>
		<id>https://wiki.byte-welt.net/index.php?title=Ftp-Client_Tutorial&amp;diff=5432</id>
		<title>Ftp-Client Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.byte-welt.net/index.php?title=Ftp-Client_Tutorial&amp;diff=5432"/>
		<updated>2013-08-17T18:35:28Z</updated>

		<summary type="html">&lt;p&gt;Andy16823: /* Das Frame */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Java Ftp  Client Tutorial =&lt;br /&gt;
&lt;br /&gt;
Mache mich mal drann um ein Ftp Tutorial zu Schreiben. In Unserem Toturial Erstellen wir einen Multi-Down/Upload Server. Wir Verwenden für Das Toturial die Mitgelieferte Klasse aus der Neusten Java Version. Für dieses Toturial solltest du die Grundlagen von Java Kennen. Auch Enfehle ich eine IDE zu Benutzen die über einen Designer Verfügt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Importierungen ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
import java.awt.List;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.net.InetAddress;&lt;br /&gt;
import java.net.InetSocketAddress;&lt;br /&gt;
import java.net.SocketAddress;&lt;br /&gt;
import java.net.UnknownHostException;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import javax.swing.DefaultListModel;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JDialog;&lt;br /&gt;
import javax.swing.JFileChooser;&lt;br /&gt;
import javax.swing.JTextField;&lt;br /&gt;
import javax.swing.UIManager;&lt;br /&gt;
import javax.swing.UnsupportedLookAndFeelException;&lt;br /&gt;
import javax.swing.tree.DefaultTreeModel;&lt;br /&gt;
import javax.swing.tree.MutableTreeNode;&lt;br /&gt;
import sun.net.ftp.FtpClient;&lt;br /&gt;
import sun.net.ftp.FtpDirEntry;&lt;br /&gt;
import sun.net.ftp.FtpProtocolException;&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Das Frame ==&lt;br /&gt;
Ich habe bei mir das Frame mit einer IDE Geschrieben die einen Desingner Verwendet, aber erfahrene Java Programmierer Sollten dies&lt;br /&gt;
auch in Wenigen Minuten mit einer IDE die Ohne Designer Arbeitet hinbekommen.&lt;br /&gt;
In dem Bild seht Ihr wie ich das Frame Aufgebaut habe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bild22.PNG|mini|hochkant=1.8|Das Frame]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie man Seht befinden sich auf dem Form 3 Listen und ein Menüstrip mit 2 Menüs, 3 textfelder, 1 Passwort Feld und ein Button. Ich habe folgende Listen Modelle den listen zugeordnet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Liste1 (DefaultListModel) mod (diese list zeigt die verzeichnisse an und Verfügt über ein Click ActionEvent&lt;br /&gt;
* Liste2 (DefaultListModel) Fmod (diese liste zeigt die Dateien An, aus dem Aktuellen FTP Verzeichniss.&lt;br /&gt;
* Liste3 (DefaultListModel) Cmod (diese liste dient als Interne Console)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Textfelder Werden folgt Verwendet&lt;br /&gt;
&lt;br /&gt;
* TextFeld1 Hier wird der Server Angegeben&lt;br /&gt;
* Textfeld2 Hier wird der Port Angegeben (Achtung der Port Muss Angegeben werden, bei vielen Servern ist der Standardt Port 21)&lt;br /&gt;
* Textfeld3 Hier Kommt der Benutzername Rein&lt;br /&gt;
* PasswordFeld1 Das Passwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Menü ist Aufgebaut in&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* File&lt;br /&gt;
&lt;br /&gt;
** Verbinden&lt;br /&gt;
** Trenen&lt;br /&gt;
** Daten Uploaden&lt;br /&gt;
** Daten Downloaden&lt;br /&gt;
** Daten Löschen&lt;br /&gt;
** Verzeichniss Löschen&lt;br /&gt;
** Verzeichniss Erstellen&lt;br /&gt;
&lt;br /&gt;
* Edit&lt;br /&gt;
** Übergeordneter Ordner&lt;br /&gt;
&lt;br /&gt;
== Die Codes ==&lt;br /&gt;
&lt;br /&gt;
=== Variabeln in der Klasse ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
//Suchen nach&lt;br /&gt;
public class main extends javax.swing.JFrame {&lt;br /&gt;
//hier diese Einträge Darunter Setzen&lt;br /&gt;
	public DefaultListModel mod;&lt;br /&gt;
	public FtpClient ftp;&lt;br /&gt;
	public FtpDirEntry direlement;&lt;br /&gt;
	public DefaultListModel Fmod;&lt;br /&gt;
	public DefaultListModel Cmod;&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Listen Initialisieren ===&lt;br /&gt;
Ich habe So die Listen Initalisiert&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
public main() {&lt;br /&gt;
initComponents();&lt;br /&gt;
// Hinzufügen&lt;br /&gt;
mod = new DefaultListModel();&lt;br /&gt;
jList1.setModel(mod);&lt;br /&gt;
Fmod = new DefaultListModel();&lt;br /&gt;
jList2.setModel(Fmod);&lt;br /&gt;
Cmod = new DefaultListModel();&lt;br /&gt;
jList3.setModel(Cmod);  &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Verbinden Action Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Elemente aus Modellen Löschen&lt;br /&gt;
        	Fmod.removeAllElements();&lt;br /&gt;
        	mod.removeAllElements();&lt;br /&gt;
        	// deklariren&lt;br /&gt;
        	// Deklarieren des List Models&lt;br /&gt;
        	mod = (DefaultListModel) jList1.getModel();&lt;br /&gt;
        	// holen des Inhaltes aus der Server Text Box&lt;br /&gt;
        	String servUrl=jTextField1.getText();&lt;br /&gt;
        	// holen des Inhaltes aus der Port Text Box&lt;br /&gt;
        	int port=Integer.parseInt(jTextField2.getText());&lt;br /&gt;
        	// Internet Adresse umwandln in IP&lt;br /&gt;
        	String ipAdr = InetAddress.getByName(servUrl).getHostAddress();&lt;br /&gt;
        	// Consolen Anzeige&lt;br /&gt;
        	Cmod.addElement(&amp;quot;Encode Adresse &amp;quot; + servUrl + &amp;quot; in IP Adresse &amp;quot; + ipAdr);&lt;br /&gt;
        	System.out.println(&amp;quot;Endode Addresse in IP: &amp;quot; + ipAdr);   	&lt;br /&gt;
        	// Socket Addresse Deklarieren&lt;br /&gt;
        	SocketAddress sAdr = new InetSocketAddress(ipAdr,port);&lt;br /&gt;
        	// Deklarieren des ftpClients&lt;br /&gt;
        	ftp =  FtpClient.create();&lt;br /&gt;
 &lt;br /&gt;
        	// Benutzername Festelgen&lt;br /&gt;
        	String userName = jTextField3.getText();&lt;br /&gt;
 &lt;br /&gt;
        	//Verbindung Aufbauen&lt;br /&gt;
        	ftp.connect(sAdr);&lt;br /&gt;
        	//Wen Verbindung Besteht, einlogen&lt;br /&gt;
        	if(ftp.isConnected()==true){&lt;br /&gt;
            	// Console giebt aus das wir uns erfolgreich verbunden haben&lt;br /&gt;
            	Cmod.addElement(&amp;quot;Erfolgreich mit Server &amp;quot; + ipAdr + &amp;quot; Verbunden&amp;quot;);&lt;br /&gt;
            	System.out.println(&amp;quot;Erfolgreich mit Server &amp;quot; + ipAdr + &amp;quot; Verbunden&amp;quot;);&lt;br /&gt;
             	// Wir lassen Uns die Begrüßungsnachricht ausgeben&lt;br /&gt;
            	System.out.print(ftp.getWelcomeMsg());&lt;br /&gt;
            	Cmod.addElement(ftp.getWelcomeMsg());&lt;br /&gt;
            	// Hier Loggen wir uns in den Server ein&lt;br /&gt;
            	ftp.login(userName, jPasswordField1.getPassword());&lt;br /&gt;
            	// Wenn wir Eingelogt Sind &lt;br /&gt;
            	if(ftp.isLoggedIn()==true){&lt;br /&gt;
                	// Wir Bekommen eine nachricht vom Server das wir uns Erfolgreich Eingelogt sind&lt;br /&gt;
                	Cmod.addElement(&amp;quot;User &amp;quot; + userName + &amp;quot; Access Garanted&amp;quot;);&lt;br /&gt;
                	System.out.println(&amp;quot;User: &amp;quot; + userName + &amp;quot; ist erfolgreich im Server eingelogt&amp;quot;);&lt;br /&gt;
                	// Nun deklarieren wir unser Aktuelles Verzeichniss&lt;br /&gt;
                	String dir = ftp.getWorkingDirectory();&lt;br /&gt;
                	// Nun lesen wir die Verzeichnisse Aus&lt;br /&gt;
                	Iterator&amp;lt;FtpDirEntry&amp;gt; dirlist = ftp.listFiles(dir);&lt;br /&gt;
                	// Listview Model leeren&lt;br /&gt;
                	mod.removeAllElements();&lt;br /&gt;
                	// hinzufügen der neune Verzeichnisse&lt;br /&gt;
                	while(dirlist.hasNext()){&lt;br /&gt;
                   	// elemnt in die DirEntry hinzufügen&lt;br /&gt;
                   	direlement = dirlist.next();&lt;br /&gt;
                   	// Prüfen ob es ein Verzeichniss ist&lt;br /&gt;
                   	if(direlement.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                       	// in Model Hinzufügen&lt;br /&gt;
                       	mod.addElement(direlement.getName());&lt;br /&gt;
                   	}&lt;br /&gt;
                   	if(direlement.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                       	Fmod.addElement(direlement.getName());&lt;br /&gt;
                   	}&lt;br /&gt;
                	}&lt;br /&gt;
            	}&lt;br /&gt;
        	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
    	} catch (UnknownHostException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	} catch (FtpProtocolException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	} catch (IOException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Trennen Action Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
        try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
            ftp.close();&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das listview ClickAction Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// List Model Deklarieren&lt;br /&gt;
    	mod = (DefaultListModel) jList1.getModel();&lt;br /&gt;
    	// Prüfen ob der Client noch Verbunden ist &lt;br /&gt;
    	if(ftp.isConnected()==true){&lt;br /&gt;
        	//prüfen ob wir noch eingelogt sind&lt;br /&gt;
        	if(ftp.isLoggedIn()==true){&lt;br /&gt;
            	try {&lt;br /&gt;
                	//Verzeichniss Wechselen&lt;br /&gt;
                	ftp.changeDirectory(jList1.getSelectedValue().toString());&lt;br /&gt;
                	// System giebt aus das das Verzeichniss gewechselt wurde&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Verzeichniss Gewechelt nach: &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	System.out.print(&amp;quot;Verzeichniss Gewechselt nach :&amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	// wir Listen die Files in dem Neune Verzeichniss&lt;br /&gt;
                	Iterator&amp;lt;FtpDirEntry&amp;gt; dirs = ftp.listFiles(ftp.getWorkingDirectory());&lt;br /&gt;
                	// wir Löschen die Alten List items&lt;br /&gt;
                	mod.removeAllElements();&lt;br /&gt;
                	Fmod.removeAllElements();&lt;br /&gt;
                	// Wir Tragen die Verzeichniss ein&lt;br /&gt;
                	while(dirs.hasNext()){&lt;br /&gt;
                    	// wir Deklarieren das Element&lt;br /&gt;
                    	direlement=dirs.next();&lt;br /&gt;
                    	// Wir Prüfen ob das Element ein Verzeichniss ist&lt;br /&gt;
                    	if(direlement.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                        	// wir fügen den Verzeichniss namen in die Liste ein&lt;br /&gt;
                        	mod.addElement(direlement.getName());&lt;br /&gt;
                    	}&lt;br /&gt;
                    	else if(direlement.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                        	Fmod.addElement(direlement.getName());&lt;br /&gt;
                    	}&lt;br /&gt;
                	}&lt;br /&gt;
 &lt;br /&gt;
            	} catch (FtpProtocolException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (IOException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	}&lt;br /&gt;
        	}&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== das Multi Download ActionEvent ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Wir Deklarieren den FileChooser&lt;br /&gt;
    	JFileChooser sfd = new JFileChooser();&lt;br /&gt;
    	// Wir schreiben in das Datenfeld Bitte Wählen, da wir nur das Verzeichniss Benötigen&lt;br /&gt;
    	sfd.setSelectedFile(new File(&amp;quot;Bitte Wählen&amp;quot;));&lt;br /&gt;
    	//Wenn Ok Gedrückt Wurde&lt;br /&gt;
    	if(sfd.showSaveDialog(sfd) == JFileChooser.APPROVE_OPTION){&lt;br /&gt;
        	// list erstellen mit Unseren Ausgewählten Daten&lt;br /&gt;
        	Object[] flist = jList2.getSelectedValues();&lt;br /&gt;
        	for(int i = 0; i &amp;lt; flist.length; i++){&lt;br /&gt;
 &lt;br /&gt;
            	try {&lt;br /&gt;
                	// wir geben Aus welche File wir Downloaden möchten&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Get file &amp;quot; + flist[i] + &amp;quot; from Curent Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	System.out.println(&amp;quot;Get file &amp;quot; + flist[i] + &amp;quot; from Curent Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	// neue File Erstellen&lt;br /&gt;
                	File f = new File(sfd.getSelectedFile().getParent() + &amp;quot;/&amp;quot; + flist[i]);&lt;br /&gt;
                	// Output Stream Erstellen&lt;br /&gt;
                	FileOutputStream os = new FileOutputStream(f);&lt;br /&gt;
                	// Datei Herunterladen&lt;br /&gt;
                	ftp.getFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; +flist[i], os);&lt;br /&gt;
                	// Server Antwortet auf unsere Anfrage&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Server: &amp;quot; + ftp.getLastResponseString());&lt;br /&gt;
                	System.out.println(&amp;quot;Server: &amp;quot; + ftp.getLastResponseString());&lt;br /&gt;
            	} catch (FileNotFoundException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (FtpProtocolException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (IOException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        	}&lt;br /&gt;
        	// Ausgeben Das der Download Beendet wurde&lt;br /&gt;
        	Cmod.addElement(&amp;quot;Download Vorgang Beendet&amp;quot;);&lt;br /&gt;
        	System.out.println(&amp;quot;Download Vorgang Beendet&amp;quot;);&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Multi Upload Action Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
//Wir erstellen einen Filechooser zum Wählen der Daten&lt;br /&gt;
        JFileChooser ofd = new JFileChooser();&lt;br /&gt;
        //mehrfach auswahl Aktivieren&lt;br /&gt;
        ofd.setMultiSelectionEnabled(true);&lt;br /&gt;
        // Wenn im Filechooser auf Ok geklickt wird&lt;br /&gt;
        if(ofd.showOpenDialog(ofd)==JFileChooser.APPROVE_OPTION){&lt;br /&gt;
            // Wir Erstellen eine Filelist die unsere Gewählten files Beinhaltet&lt;br /&gt;
            File[] flist = ofd.getSelectedFiles();&lt;br /&gt;
            // Wir laden jede Einzelne File hoch&lt;br /&gt;
            for(int i = 0 ; i&amp;lt;flist.length;i++){&lt;br /&gt;
                try {&lt;br /&gt;
                    // hiier Deklarieren wir die File&lt;br /&gt;
                    File f = flist[i];&lt;br /&gt;
                    // Info für Console&lt;br /&gt;
                    Cmod.addElement(&amp;quot;Put File &amp;quot; + f.getName() + &amp;quot; in to &amp;quot; + ftp.getWorkingDirectory() + &amp;quot; directory&amp;quot;);&lt;br /&gt;
                    System.out.println(&amp;quot;Put File &amp;quot; + f.getName() + &amp;quot; in to &amp;quot; + ftp.getWorkingDirectory() + &amp;quot; directory&amp;quot;);&lt;br /&gt;
                    // Wir erstellen einen Fileinputstream zum Auslesen der Datei&lt;br /&gt;
                    FileInputStream is = new FileInputStream(f);&lt;br /&gt;
                    // Nun wird die Datei ochgeladen&lt;br /&gt;
                    ftp.putFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + f.getName(), is);&lt;br /&gt;
                    // Console giebt server Nachricht aus&lt;br /&gt;
                    Cmod.addElement(&amp;quot;Server: &amp;quot; +ftp.getLastResponseString());&lt;br /&gt;
                    System.out.println(&amp;quot;Server: &amp;quot; +ftp.getLastResponseString());&lt;br /&gt;
                } catch (FileNotFoundException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                } catch (FtpProtocolException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                } catch (IOException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                }&lt;br /&gt;
 &lt;br /&gt;
            }&lt;br /&gt;
            // Console giebt aus das Übertragung beendet Wurde&lt;br /&gt;
            Cmod.addElement(&amp;quot;Übertragung der Files &amp;quot; + flist.toString() + &amp;quot; Beendet&amp;quot;);&lt;br /&gt;
            System.out.println(&amp;quot;Übertragung der Files &amp;quot; + flist.toString() + &amp;quot; Beendet&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Übergerordneter Ordner Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Elemente Entfernen&lt;br /&gt;
            mod.removeAllElements();&lt;br /&gt;
            Fmod.removeAllElements();&lt;br /&gt;
 &lt;br /&gt;
            // FtpDirEntry Deklarieren&lt;br /&gt;
            FtpDirEntry dir;         &lt;br /&gt;
            // Verzeichniss Wechseln&lt;br /&gt;
            ftp.changeToParentDirectory();       &lt;br /&gt;
            // Neues Verzeichniss in Console Ausgeben&lt;br /&gt;
            Cmod.addElement(&amp;quot;Aktuelles Verzeichniss &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
            // Verzeichnisse in eine FtpDirEntry List hinzufügen&lt;br /&gt;
            Iterator&amp;lt;FtpDirEntry&amp;gt; dirlist = ftp.listFiles(ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
            // Jedes Verzeichniss Ausgeben&lt;br /&gt;
            while(dirlist.hasNext()){&lt;br /&gt;
                // dir elemnt Deklarieren&lt;br /&gt;
                dir=dirlist.next();&lt;br /&gt;
 &lt;br /&gt;
                // ist dir ein Ordner ?&lt;br /&gt;
                if(dir.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                    // wenn ja dan in List 1&lt;br /&gt;
                    mod.addElement(dir.getName());&lt;br /&gt;
                }&lt;br /&gt;
                // Ist dir eine Datei ?&lt;br /&gt;
                if(dir.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                    // wenn ja dan in List 2&lt;br /&gt;
                    Fmod.addElement(dir.getName());&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Datei Löschen Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
 &lt;br /&gt;
            // Wir Schreiben in die Console das Wir die Datei Löschen&lt;br /&gt;
            Cmod.addElement(&amp;quot;Delete File &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
            System.out.println(&amp;quot;Delete File &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
 &lt;br /&gt;
            // Wir Löschen die Datei&lt;br /&gt;
            ftp.deleteFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
 &lt;br /&gt;
            // Wir Geben die Server Antwort aus&lt;br /&gt;
            Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
            System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Verzeichniss Löschen Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
                // Wir Schreiben in die Console das Wir das Verzeichniss Löschen&lt;br /&gt;
                Cmod.addElement(&amp;quot;Delete Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                System.out.println(&amp;quot;Delete Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Löschen Das Verzeichniss&lt;br /&gt;
                ftp.removeDirectory(ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Geben die Server Antwort aus&lt;br /&gt;
                Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
                System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Verzeichniss Erstellen Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Deklarieren der Elemente&lt;br /&gt;
        JDialog dia = new JDialog();&lt;br /&gt;
        dia.setSize(375, 110);&lt;br /&gt;
        dia.setLayout(null);&lt;br /&gt;
        dia.setTitle(&amp;quot;Neues Verzeichniss anlegen&amp;quot;);&lt;br /&gt;
        JButton b = new JButton(&amp;quot;Erstellen&amp;quot;);&lt;br /&gt;
        final JTextField textfield = new JTextField();&lt;br /&gt;
 &lt;br /&gt;
        // Platzieren der Elemente&lt;br /&gt;
        textfield.setLocation(25, 25);&lt;br /&gt;
        textfield.setSize(200, 20);&lt;br /&gt;
        b.setLocation(235, 25);&lt;br /&gt;
        b.setSize(100,20);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        // Füge Controls Hinzu&lt;br /&gt;
        dia.add(textfield);&lt;br /&gt;
        dia.add(b);&lt;br /&gt;
        dia.setVisible(true);&lt;br /&gt;
 &lt;br /&gt;
        // Action Listner auf Button Legen&lt;br /&gt;
        b.addActionListener(new ActionListener(){&lt;br /&gt;
        public void actionPerformed(ActionEvent e){&lt;br /&gt;
            try {&lt;br /&gt;
 &lt;br /&gt;
                // Console Giebt aus das wir ein Verzeichniss Erstellen&lt;br /&gt;
                Cmod.addElement(&amp;quot;Create Dir &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
                System.out.println(&amp;quot;Create Dir &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Erstellen das Verzeichniss&lt;br /&gt;
                ftp.makeDirectory(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Geben die System Nachricht aus &lt;br /&gt;
                Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
                System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
            } catch (FtpProtocolException ex) {&lt;br /&gt;
                Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            } catch (IOException ex) {&lt;br /&gt;
                Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
        }&lt;br /&gt;
        });&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war der Letzte Teil des Toturials natürlich Könnte man noch X-Funktionen einfügen aber den Spaß überlasse ich euch. Auf Anfrage Sende ich Auch gerne Die Sourcecodes Zu, einfach im Forum eine PN an Andy16823&lt;/div&gt;</summary>
		<author><name>Andy16823</name></author>
	</entry>
	<entry>
		<id>https://wiki.byte-welt.net/index.php?title=Ftp-Client_Tutorial&amp;diff=5431</id>
		<title>Ftp-Client Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.byte-welt.net/index.php?title=Ftp-Client_Tutorial&amp;diff=5431"/>
		<updated>2013-08-17T18:33:45Z</updated>

		<summary type="html">&lt;p&gt;Andy16823: /* Das Frame */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Java Ftp  Client Tutorial =&lt;br /&gt;
&lt;br /&gt;
Mache mich mal drann um ein Ftp Tutorial zu Schreiben. In Unserem Toturial Erstellen wir einen Multi-Down/Upload Server. Wir Verwenden für Das Toturial die Mitgelieferte Klasse aus der Neusten Java Version. Für dieses Toturial solltest du die Grundlagen von Java Kennen. Auch Enfehle ich eine IDE zu Benutzen die über einen Designer Verfügt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Importierungen ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
import java.awt.List;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.net.InetAddress;&lt;br /&gt;
import java.net.InetSocketAddress;&lt;br /&gt;
import java.net.SocketAddress;&lt;br /&gt;
import java.net.UnknownHostException;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import javax.swing.DefaultListModel;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JDialog;&lt;br /&gt;
import javax.swing.JFileChooser;&lt;br /&gt;
import javax.swing.JTextField;&lt;br /&gt;
import javax.swing.UIManager;&lt;br /&gt;
import javax.swing.UnsupportedLookAndFeelException;&lt;br /&gt;
import javax.swing.tree.DefaultTreeModel;&lt;br /&gt;
import javax.swing.tree.MutableTreeNode;&lt;br /&gt;
import sun.net.ftp.FtpClient;&lt;br /&gt;
import sun.net.ftp.FtpDirEntry;&lt;br /&gt;
import sun.net.ftp.FtpProtocolException;&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Das Frame ==&lt;br /&gt;
Ich habe bei mir das Frame mit einer IDE Geschrieben die einen Desingner Verwendet, aber erfahrene Java Programmierer Sollten dies&lt;br /&gt;
auch in Wenigen Minuten mit einer IDE die Ohne Designer Arbeitet hinbekommen.&lt;br /&gt;
In dem Bild seht Ihr wie ich das Frame Aufgebaut habe.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bild22.PNG|mini|350px|Bild]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie man Seht befinden sich auf dem Form 3 Listen und ein Menüstrip mit 2 Menüs, 3 textfelder, 1 Passwort Feld und ein Button. Ich habe folgende Listen Modelle den listen zugeordnet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Liste1 (DefaultListModel) mod (diese list zeigt die verzeichnisse an und Verfügt über ein Click ActionEvent&lt;br /&gt;
* Liste2 (DefaultListModel) Fmod (diese liste zeigt die Dateien An, aus dem Aktuellen FTP Verzeichniss.&lt;br /&gt;
* Liste3 (DefaultListModel) Cmod (diese liste dient als Interne Console)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Textfelder Werden folgt Verwendet&lt;br /&gt;
&lt;br /&gt;
* TextFeld1 Hier wird der Server Angegeben&lt;br /&gt;
* Textfeld2 Hier wird der Port Angegeben (Achtung der Port Muss Angegeben werden, bei vielen Servern ist der Standardt Port 21)&lt;br /&gt;
* Textfeld3 Hier Kommt der Benutzername Rein&lt;br /&gt;
* PasswordFeld1 Das Passwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Menü ist Aufgebaut in&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* File&lt;br /&gt;
&lt;br /&gt;
** Verbinden&lt;br /&gt;
** Trenen&lt;br /&gt;
** Daten Uploaden&lt;br /&gt;
** Daten Downloaden&lt;br /&gt;
** Daten Löschen&lt;br /&gt;
** Verzeichniss Löschen&lt;br /&gt;
** Verzeichniss Erstellen&lt;br /&gt;
&lt;br /&gt;
* Edit&lt;br /&gt;
** Übergeordneter Ordner&lt;br /&gt;
&lt;br /&gt;
== Die Codes ==&lt;br /&gt;
&lt;br /&gt;
=== Variabeln in der Klasse ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
//Suchen nach&lt;br /&gt;
public class main extends javax.swing.JFrame {&lt;br /&gt;
//hier diese Einträge Darunter Setzen&lt;br /&gt;
	public DefaultListModel mod;&lt;br /&gt;
	public FtpClient ftp;&lt;br /&gt;
	public FtpDirEntry direlement;&lt;br /&gt;
	public DefaultListModel Fmod;&lt;br /&gt;
	public DefaultListModel Cmod;&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Listen Initialisieren ===&lt;br /&gt;
Ich habe So die Listen Initalisiert&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
public main() {&lt;br /&gt;
initComponents();&lt;br /&gt;
// Hinzufügen&lt;br /&gt;
mod = new DefaultListModel();&lt;br /&gt;
jList1.setModel(mod);&lt;br /&gt;
Fmod = new DefaultListModel();&lt;br /&gt;
jList2.setModel(Fmod);&lt;br /&gt;
Cmod = new DefaultListModel();&lt;br /&gt;
jList3.setModel(Cmod);  &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Verbinden Action Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Elemente aus Modellen Löschen&lt;br /&gt;
        	Fmod.removeAllElements();&lt;br /&gt;
        	mod.removeAllElements();&lt;br /&gt;
        	// deklariren&lt;br /&gt;
        	// Deklarieren des List Models&lt;br /&gt;
        	mod = (DefaultListModel) jList1.getModel();&lt;br /&gt;
        	// holen des Inhaltes aus der Server Text Box&lt;br /&gt;
        	String servUrl=jTextField1.getText();&lt;br /&gt;
        	// holen des Inhaltes aus der Port Text Box&lt;br /&gt;
        	int port=Integer.parseInt(jTextField2.getText());&lt;br /&gt;
        	// Internet Adresse umwandln in IP&lt;br /&gt;
        	String ipAdr = InetAddress.getByName(servUrl).getHostAddress();&lt;br /&gt;
        	// Consolen Anzeige&lt;br /&gt;
        	Cmod.addElement(&amp;quot;Encode Adresse &amp;quot; + servUrl + &amp;quot; in IP Adresse &amp;quot; + ipAdr);&lt;br /&gt;
        	System.out.println(&amp;quot;Endode Addresse in IP: &amp;quot; + ipAdr);   	&lt;br /&gt;
        	// Socket Addresse Deklarieren&lt;br /&gt;
        	SocketAddress sAdr = new InetSocketAddress(ipAdr,port);&lt;br /&gt;
        	// Deklarieren des ftpClients&lt;br /&gt;
        	ftp =  FtpClient.create();&lt;br /&gt;
 &lt;br /&gt;
        	// Benutzername Festelgen&lt;br /&gt;
        	String userName = jTextField3.getText();&lt;br /&gt;
 &lt;br /&gt;
        	//Verbindung Aufbauen&lt;br /&gt;
        	ftp.connect(sAdr);&lt;br /&gt;
        	//Wen Verbindung Besteht, einlogen&lt;br /&gt;
        	if(ftp.isConnected()==true){&lt;br /&gt;
            	// Console giebt aus das wir uns erfolgreich verbunden haben&lt;br /&gt;
            	Cmod.addElement(&amp;quot;Erfolgreich mit Server &amp;quot; + ipAdr + &amp;quot; Verbunden&amp;quot;);&lt;br /&gt;
            	System.out.println(&amp;quot;Erfolgreich mit Server &amp;quot; + ipAdr + &amp;quot; Verbunden&amp;quot;);&lt;br /&gt;
             	// Wir lassen Uns die Begrüßungsnachricht ausgeben&lt;br /&gt;
            	System.out.print(ftp.getWelcomeMsg());&lt;br /&gt;
            	Cmod.addElement(ftp.getWelcomeMsg());&lt;br /&gt;
            	// Hier Loggen wir uns in den Server ein&lt;br /&gt;
            	ftp.login(userName, jPasswordField1.getPassword());&lt;br /&gt;
            	// Wenn wir Eingelogt Sind &lt;br /&gt;
            	if(ftp.isLoggedIn()==true){&lt;br /&gt;
                	// Wir Bekommen eine nachricht vom Server das wir uns Erfolgreich Eingelogt sind&lt;br /&gt;
                	Cmod.addElement(&amp;quot;User &amp;quot; + userName + &amp;quot; Access Garanted&amp;quot;);&lt;br /&gt;
                	System.out.println(&amp;quot;User: &amp;quot; + userName + &amp;quot; ist erfolgreich im Server eingelogt&amp;quot;);&lt;br /&gt;
                	// Nun deklarieren wir unser Aktuelles Verzeichniss&lt;br /&gt;
                	String dir = ftp.getWorkingDirectory();&lt;br /&gt;
                	// Nun lesen wir die Verzeichnisse Aus&lt;br /&gt;
                	Iterator&amp;lt;FtpDirEntry&amp;gt; dirlist = ftp.listFiles(dir);&lt;br /&gt;
                	// Listview Model leeren&lt;br /&gt;
                	mod.removeAllElements();&lt;br /&gt;
                	// hinzufügen der neune Verzeichnisse&lt;br /&gt;
                	while(dirlist.hasNext()){&lt;br /&gt;
                   	// elemnt in die DirEntry hinzufügen&lt;br /&gt;
                   	direlement = dirlist.next();&lt;br /&gt;
                   	// Prüfen ob es ein Verzeichniss ist&lt;br /&gt;
                   	if(direlement.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                       	// in Model Hinzufügen&lt;br /&gt;
                       	mod.addElement(direlement.getName());&lt;br /&gt;
                   	}&lt;br /&gt;
                   	if(direlement.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                       	Fmod.addElement(direlement.getName());&lt;br /&gt;
                   	}&lt;br /&gt;
                	}&lt;br /&gt;
            	}&lt;br /&gt;
        	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
    	} catch (UnknownHostException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	} catch (FtpProtocolException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	} catch (IOException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Trennen Action Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
        try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
            ftp.close();&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das listview ClickAction Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// List Model Deklarieren&lt;br /&gt;
    	mod = (DefaultListModel) jList1.getModel();&lt;br /&gt;
    	// Prüfen ob der Client noch Verbunden ist &lt;br /&gt;
    	if(ftp.isConnected()==true){&lt;br /&gt;
        	//prüfen ob wir noch eingelogt sind&lt;br /&gt;
        	if(ftp.isLoggedIn()==true){&lt;br /&gt;
            	try {&lt;br /&gt;
                	//Verzeichniss Wechselen&lt;br /&gt;
                	ftp.changeDirectory(jList1.getSelectedValue().toString());&lt;br /&gt;
                	// System giebt aus das das Verzeichniss gewechselt wurde&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Verzeichniss Gewechelt nach: &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	System.out.print(&amp;quot;Verzeichniss Gewechselt nach :&amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	// wir Listen die Files in dem Neune Verzeichniss&lt;br /&gt;
                	Iterator&amp;lt;FtpDirEntry&amp;gt; dirs = ftp.listFiles(ftp.getWorkingDirectory());&lt;br /&gt;
                	// wir Löschen die Alten List items&lt;br /&gt;
                	mod.removeAllElements();&lt;br /&gt;
                	Fmod.removeAllElements();&lt;br /&gt;
                	// Wir Tragen die Verzeichniss ein&lt;br /&gt;
                	while(dirs.hasNext()){&lt;br /&gt;
                    	// wir Deklarieren das Element&lt;br /&gt;
                    	direlement=dirs.next();&lt;br /&gt;
                    	// Wir Prüfen ob das Element ein Verzeichniss ist&lt;br /&gt;
                    	if(direlement.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                        	// wir fügen den Verzeichniss namen in die Liste ein&lt;br /&gt;
                        	mod.addElement(direlement.getName());&lt;br /&gt;
                    	}&lt;br /&gt;
                    	else if(direlement.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                        	Fmod.addElement(direlement.getName());&lt;br /&gt;
                    	}&lt;br /&gt;
                	}&lt;br /&gt;
 &lt;br /&gt;
            	} catch (FtpProtocolException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (IOException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	}&lt;br /&gt;
        	}&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== das Multi Download ActionEvent ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Wir Deklarieren den FileChooser&lt;br /&gt;
    	JFileChooser sfd = new JFileChooser();&lt;br /&gt;
    	// Wir schreiben in das Datenfeld Bitte Wählen, da wir nur das Verzeichniss Benötigen&lt;br /&gt;
    	sfd.setSelectedFile(new File(&amp;quot;Bitte Wählen&amp;quot;));&lt;br /&gt;
    	//Wenn Ok Gedrückt Wurde&lt;br /&gt;
    	if(sfd.showSaveDialog(sfd) == JFileChooser.APPROVE_OPTION){&lt;br /&gt;
        	// list erstellen mit Unseren Ausgewählten Daten&lt;br /&gt;
        	Object[] flist = jList2.getSelectedValues();&lt;br /&gt;
        	for(int i = 0; i &amp;lt; flist.length; i++){&lt;br /&gt;
 &lt;br /&gt;
            	try {&lt;br /&gt;
                	// wir geben Aus welche File wir Downloaden möchten&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Get file &amp;quot; + flist[i] + &amp;quot; from Curent Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	System.out.println(&amp;quot;Get file &amp;quot; + flist[i] + &amp;quot; from Curent Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	// neue File Erstellen&lt;br /&gt;
                	File f = new File(sfd.getSelectedFile().getParent() + &amp;quot;/&amp;quot; + flist[i]);&lt;br /&gt;
                	// Output Stream Erstellen&lt;br /&gt;
                	FileOutputStream os = new FileOutputStream(f);&lt;br /&gt;
                	// Datei Herunterladen&lt;br /&gt;
                	ftp.getFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; +flist[i], os);&lt;br /&gt;
                	// Server Antwortet auf unsere Anfrage&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Server: &amp;quot; + ftp.getLastResponseString());&lt;br /&gt;
                	System.out.println(&amp;quot;Server: &amp;quot; + ftp.getLastResponseString());&lt;br /&gt;
            	} catch (FileNotFoundException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (FtpProtocolException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (IOException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        	}&lt;br /&gt;
        	// Ausgeben Das der Download Beendet wurde&lt;br /&gt;
        	Cmod.addElement(&amp;quot;Download Vorgang Beendet&amp;quot;);&lt;br /&gt;
        	System.out.println(&amp;quot;Download Vorgang Beendet&amp;quot;);&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Multi Upload Action Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
//Wir erstellen einen Filechooser zum Wählen der Daten&lt;br /&gt;
        JFileChooser ofd = new JFileChooser();&lt;br /&gt;
        //mehrfach auswahl Aktivieren&lt;br /&gt;
        ofd.setMultiSelectionEnabled(true);&lt;br /&gt;
        // Wenn im Filechooser auf Ok geklickt wird&lt;br /&gt;
        if(ofd.showOpenDialog(ofd)==JFileChooser.APPROVE_OPTION){&lt;br /&gt;
            // Wir Erstellen eine Filelist die unsere Gewählten files Beinhaltet&lt;br /&gt;
            File[] flist = ofd.getSelectedFiles();&lt;br /&gt;
            // Wir laden jede Einzelne File hoch&lt;br /&gt;
            for(int i = 0 ; i&amp;lt;flist.length;i++){&lt;br /&gt;
                try {&lt;br /&gt;
                    // hiier Deklarieren wir die File&lt;br /&gt;
                    File f = flist[i];&lt;br /&gt;
                    // Info für Console&lt;br /&gt;
                    Cmod.addElement(&amp;quot;Put File &amp;quot; + f.getName() + &amp;quot; in to &amp;quot; + ftp.getWorkingDirectory() + &amp;quot; directory&amp;quot;);&lt;br /&gt;
                    System.out.println(&amp;quot;Put File &amp;quot; + f.getName() + &amp;quot; in to &amp;quot; + ftp.getWorkingDirectory() + &amp;quot; directory&amp;quot;);&lt;br /&gt;
                    // Wir erstellen einen Fileinputstream zum Auslesen der Datei&lt;br /&gt;
                    FileInputStream is = new FileInputStream(f);&lt;br /&gt;
                    // Nun wird die Datei ochgeladen&lt;br /&gt;
                    ftp.putFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + f.getName(), is);&lt;br /&gt;
                    // Console giebt server Nachricht aus&lt;br /&gt;
                    Cmod.addElement(&amp;quot;Server: &amp;quot; +ftp.getLastResponseString());&lt;br /&gt;
                    System.out.println(&amp;quot;Server: &amp;quot; +ftp.getLastResponseString());&lt;br /&gt;
                } catch (FileNotFoundException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                } catch (FtpProtocolException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                } catch (IOException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                }&lt;br /&gt;
 &lt;br /&gt;
            }&lt;br /&gt;
            // Console giebt aus das Übertragung beendet Wurde&lt;br /&gt;
            Cmod.addElement(&amp;quot;Übertragung der Files &amp;quot; + flist.toString() + &amp;quot; Beendet&amp;quot;);&lt;br /&gt;
            System.out.println(&amp;quot;Übertragung der Files &amp;quot; + flist.toString() + &amp;quot; Beendet&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Übergerordneter Ordner Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Elemente Entfernen&lt;br /&gt;
            mod.removeAllElements();&lt;br /&gt;
            Fmod.removeAllElements();&lt;br /&gt;
 &lt;br /&gt;
            // FtpDirEntry Deklarieren&lt;br /&gt;
            FtpDirEntry dir;         &lt;br /&gt;
            // Verzeichniss Wechseln&lt;br /&gt;
            ftp.changeToParentDirectory();       &lt;br /&gt;
            // Neues Verzeichniss in Console Ausgeben&lt;br /&gt;
            Cmod.addElement(&amp;quot;Aktuelles Verzeichniss &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
            // Verzeichnisse in eine FtpDirEntry List hinzufügen&lt;br /&gt;
            Iterator&amp;lt;FtpDirEntry&amp;gt; dirlist = ftp.listFiles(ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
            // Jedes Verzeichniss Ausgeben&lt;br /&gt;
            while(dirlist.hasNext()){&lt;br /&gt;
                // dir elemnt Deklarieren&lt;br /&gt;
                dir=dirlist.next();&lt;br /&gt;
 &lt;br /&gt;
                // ist dir ein Ordner ?&lt;br /&gt;
                if(dir.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                    // wenn ja dan in List 1&lt;br /&gt;
                    mod.addElement(dir.getName());&lt;br /&gt;
                }&lt;br /&gt;
                // Ist dir eine Datei ?&lt;br /&gt;
                if(dir.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                    // wenn ja dan in List 2&lt;br /&gt;
                    Fmod.addElement(dir.getName());&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Datei Löschen Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
 &lt;br /&gt;
            // Wir Schreiben in die Console das Wir die Datei Löschen&lt;br /&gt;
            Cmod.addElement(&amp;quot;Delete File &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
            System.out.println(&amp;quot;Delete File &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
 &lt;br /&gt;
            // Wir Löschen die Datei&lt;br /&gt;
            ftp.deleteFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
 &lt;br /&gt;
            // Wir Geben die Server Antwort aus&lt;br /&gt;
            Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
            System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Verzeichniss Löschen Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
                // Wir Schreiben in die Console das Wir das Verzeichniss Löschen&lt;br /&gt;
                Cmod.addElement(&amp;quot;Delete Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                System.out.println(&amp;quot;Delete Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Löschen Das Verzeichniss&lt;br /&gt;
                ftp.removeDirectory(ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Geben die Server Antwort aus&lt;br /&gt;
                Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
                System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Verzeichniss Erstellen Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Deklarieren der Elemente&lt;br /&gt;
        JDialog dia = new JDialog();&lt;br /&gt;
        dia.setSize(375, 110);&lt;br /&gt;
        dia.setLayout(null);&lt;br /&gt;
        dia.setTitle(&amp;quot;Neues Verzeichniss anlegen&amp;quot;);&lt;br /&gt;
        JButton b = new JButton(&amp;quot;Erstellen&amp;quot;);&lt;br /&gt;
        final JTextField textfield = new JTextField();&lt;br /&gt;
 &lt;br /&gt;
        // Platzieren der Elemente&lt;br /&gt;
        textfield.setLocation(25, 25);&lt;br /&gt;
        textfield.setSize(200, 20);&lt;br /&gt;
        b.setLocation(235, 25);&lt;br /&gt;
        b.setSize(100,20);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        // Füge Controls Hinzu&lt;br /&gt;
        dia.add(textfield);&lt;br /&gt;
        dia.add(b);&lt;br /&gt;
        dia.setVisible(true);&lt;br /&gt;
 &lt;br /&gt;
        // Action Listner auf Button Legen&lt;br /&gt;
        b.addActionListener(new ActionListener(){&lt;br /&gt;
        public void actionPerformed(ActionEvent e){&lt;br /&gt;
            try {&lt;br /&gt;
 &lt;br /&gt;
                // Console Giebt aus das wir ein Verzeichniss Erstellen&lt;br /&gt;
                Cmod.addElement(&amp;quot;Create Dir &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
                System.out.println(&amp;quot;Create Dir &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Erstellen das Verzeichniss&lt;br /&gt;
                ftp.makeDirectory(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Geben die System Nachricht aus &lt;br /&gt;
                Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
                System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
            } catch (FtpProtocolException ex) {&lt;br /&gt;
                Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            } catch (IOException ex) {&lt;br /&gt;
                Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
        }&lt;br /&gt;
        });&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war der Letzte Teil des Toturials natürlich Könnte man noch X-Funktionen einfügen aber den Spaß überlasse ich euch. Auf Anfrage Sende ich Auch gerne Die Sourcecodes Zu, einfach im Forum eine PN an Andy16823&lt;/div&gt;</summary>
		<author><name>Andy16823</name></author>
	</entry>
	<entry>
		<id>https://wiki.byte-welt.net/index.php?title=Ftp-Client_Tutorial&amp;diff=5430</id>
		<title>Ftp-Client Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.byte-welt.net/index.php?title=Ftp-Client_Tutorial&amp;diff=5430"/>
		<updated>2013-08-17T18:33:17Z</updated>

		<summary type="html">&lt;p&gt;Andy16823: /* Das Frame */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Java Ftp  Client Tutorial =&lt;br /&gt;
&lt;br /&gt;
Mache mich mal drann um ein Ftp Tutorial zu Schreiben. In Unserem Toturial Erstellen wir einen Multi-Down/Upload Server. Wir Verwenden für Das Toturial die Mitgelieferte Klasse aus der Neusten Java Version. Für dieses Toturial solltest du die Grundlagen von Java Kennen. Auch Enfehle ich eine IDE zu Benutzen die über einen Designer Verfügt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Importierungen ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
import java.awt.List;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.net.InetAddress;&lt;br /&gt;
import java.net.InetSocketAddress;&lt;br /&gt;
import java.net.SocketAddress;&lt;br /&gt;
import java.net.UnknownHostException;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import javax.swing.DefaultListModel;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JDialog;&lt;br /&gt;
import javax.swing.JFileChooser;&lt;br /&gt;
import javax.swing.JTextField;&lt;br /&gt;
import javax.swing.UIManager;&lt;br /&gt;
import javax.swing.UnsupportedLookAndFeelException;&lt;br /&gt;
import javax.swing.tree.DefaultTreeModel;&lt;br /&gt;
import javax.swing.tree.MutableTreeNode;&lt;br /&gt;
import sun.net.ftp.FtpClient;&lt;br /&gt;
import sun.net.ftp.FtpDirEntry;&lt;br /&gt;
import sun.net.ftp.FtpProtocolException;&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Das Frame ==&lt;br /&gt;
Ich habe bei mir das Frame mit einer IDE Geschrieben die einen Desingner Verwendet, aber erfahrene Java Programmierer Sollten dies&lt;br /&gt;
auch in Wenigen Minuten mit einer IDE die Ohne Designer Arbeitet hinbekommen.&lt;br /&gt;
In dem Bild seht Ihr wie ich das Frame Aufgebaut habe.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bild22.PNG|mini|350px|Text der Bildlegende]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie man Seht befinden sich auf dem Form 3 Listen und ein Menüstrip mit 2 Menüs, 3 textfelder, 1 Passwort Feld und ein Button. Ich habe folgende Listen Modelle den listen zugeordnet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Liste1 (DefaultListModel) mod (diese list zeigt die verzeichnisse an und Verfügt über ein Click ActionEvent&lt;br /&gt;
* Liste2 (DefaultListModel) Fmod (diese liste zeigt die Dateien An, aus dem Aktuellen FTP Verzeichniss.&lt;br /&gt;
* Liste3 (DefaultListModel) Cmod (diese liste dient als Interne Console)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Textfelder Werden folgt Verwendet&lt;br /&gt;
&lt;br /&gt;
* TextFeld1 Hier wird der Server Angegeben&lt;br /&gt;
* Textfeld2 Hier wird der Port Angegeben (Achtung der Port Muss Angegeben werden, bei vielen Servern ist der Standardt Port 21)&lt;br /&gt;
* Textfeld3 Hier Kommt der Benutzername Rein&lt;br /&gt;
* PasswordFeld1 Das Passwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Menü ist Aufgebaut in&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* File&lt;br /&gt;
&lt;br /&gt;
** Verbinden&lt;br /&gt;
** Trenen&lt;br /&gt;
** Daten Uploaden&lt;br /&gt;
** Daten Downloaden&lt;br /&gt;
** Daten Löschen&lt;br /&gt;
** Verzeichniss Löschen&lt;br /&gt;
** Verzeichniss Erstellen&lt;br /&gt;
&lt;br /&gt;
* Edit&lt;br /&gt;
** Übergeordneter Ordner&lt;br /&gt;
&lt;br /&gt;
== Die Codes ==&lt;br /&gt;
&lt;br /&gt;
=== Variabeln in der Klasse ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
//Suchen nach&lt;br /&gt;
public class main extends javax.swing.JFrame {&lt;br /&gt;
//hier diese Einträge Darunter Setzen&lt;br /&gt;
	public DefaultListModel mod;&lt;br /&gt;
	public FtpClient ftp;&lt;br /&gt;
	public FtpDirEntry direlement;&lt;br /&gt;
	public DefaultListModel Fmod;&lt;br /&gt;
	public DefaultListModel Cmod;&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Listen Initialisieren ===&lt;br /&gt;
Ich habe So die Listen Initalisiert&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
public main() {&lt;br /&gt;
initComponents();&lt;br /&gt;
// Hinzufügen&lt;br /&gt;
mod = new DefaultListModel();&lt;br /&gt;
jList1.setModel(mod);&lt;br /&gt;
Fmod = new DefaultListModel();&lt;br /&gt;
jList2.setModel(Fmod);&lt;br /&gt;
Cmod = new DefaultListModel();&lt;br /&gt;
jList3.setModel(Cmod);  &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Verbinden Action Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Elemente aus Modellen Löschen&lt;br /&gt;
        	Fmod.removeAllElements();&lt;br /&gt;
        	mod.removeAllElements();&lt;br /&gt;
        	// deklariren&lt;br /&gt;
        	// Deklarieren des List Models&lt;br /&gt;
        	mod = (DefaultListModel) jList1.getModel();&lt;br /&gt;
        	// holen des Inhaltes aus der Server Text Box&lt;br /&gt;
        	String servUrl=jTextField1.getText();&lt;br /&gt;
        	// holen des Inhaltes aus der Port Text Box&lt;br /&gt;
        	int port=Integer.parseInt(jTextField2.getText());&lt;br /&gt;
        	// Internet Adresse umwandln in IP&lt;br /&gt;
        	String ipAdr = InetAddress.getByName(servUrl).getHostAddress();&lt;br /&gt;
        	// Consolen Anzeige&lt;br /&gt;
        	Cmod.addElement(&amp;quot;Encode Adresse &amp;quot; + servUrl + &amp;quot; in IP Adresse &amp;quot; + ipAdr);&lt;br /&gt;
        	System.out.println(&amp;quot;Endode Addresse in IP: &amp;quot; + ipAdr);   	&lt;br /&gt;
        	// Socket Addresse Deklarieren&lt;br /&gt;
        	SocketAddress sAdr = new InetSocketAddress(ipAdr,port);&lt;br /&gt;
        	// Deklarieren des ftpClients&lt;br /&gt;
        	ftp =  FtpClient.create();&lt;br /&gt;
 &lt;br /&gt;
        	// Benutzername Festelgen&lt;br /&gt;
        	String userName = jTextField3.getText();&lt;br /&gt;
 &lt;br /&gt;
        	//Verbindung Aufbauen&lt;br /&gt;
        	ftp.connect(sAdr);&lt;br /&gt;
        	//Wen Verbindung Besteht, einlogen&lt;br /&gt;
        	if(ftp.isConnected()==true){&lt;br /&gt;
            	// Console giebt aus das wir uns erfolgreich verbunden haben&lt;br /&gt;
            	Cmod.addElement(&amp;quot;Erfolgreich mit Server &amp;quot; + ipAdr + &amp;quot; Verbunden&amp;quot;);&lt;br /&gt;
            	System.out.println(&amp;quot;Erfolgreich mit Server &amp;quot; + ipAdr + &amp;quot; Verbunden&amp;quot;);&lt;br /&gt;
             	// Wir lassen Uns die Begrüßungsnachricht ausgeben&lt;br /&gt;
            	System.out.print(ftp.getWelcomeMsg());&lt;br /&gt;
            	Cmod.addElement(ftp.getWelcomeMsg());&lt;br /&gt;
            	// Hier Loggen wir uns in den Server ein&lt;br /&gt;
            	ftp.login(userName, jPasswordField1.getPassword());&lt;br /&gt;
            	// Wenn wir Eingelogt Sind &lt;br /&gt;
            	if(ftp.isLoggedIn()==true){&lt;br /&gt;
                	// Wir Bekommen eine nachricht vom Server das wir uns Erfolgreich Eingelogt sind&lt;br /&gt;
                	Cmod.addElement(&amp;quot;User &amp;quot; + userName + &amp;quot; Access Garanted&amp;quot;);&lt;br /&gt;
                	System.out.println(&amp;quot;User: &amp;quot; + userName + &amp;quot; ist erfolgreich im Server eingelogt&amp;quot;);&lt;br /&gt;
                	// Nun deklarieren wir unser Aktuelles Verzeichniss&lt;br /&gt;
                	String dir = ftp.getWorkingDirectory();&lt;br /&gt;
                	// Nun lesen wir die Verzeichnisse Aus&lt;br /&gt;
                	Iterator&amp;lt;FtpDirEntry&amp;gt; dirlist = ftp.listFiles(dir);&lt;br /&gt;
                	// Listview Model leeren&lt;br /&gt;
                	mod.removeAllElements();&lt;br /&gt;
                	// hinzufügen der neune Verzeichnisse&lt;br /&gt;
                	while(dirlist.hasNext()){&lt;br /&gt;
                   	// elemnt in die DirEntry hinzufügen&lt;br /&gt;
                   	direlement = dirlist.next();&lt;br /&gt;
                   	// Prüfen ob es ein Verzeichniss ist&lt;br /&gt;
                   	if(direlement.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                       	// in Model Hinzufügen&lt;br /&gt;
                       	mod.addElement(direlement.getName());&lt;br /&gt;
                   	}&lt;br /&gt;
                   	if(direlement.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                       	Fmod.addElement(direlement.getName());&lt;br /&gt;
                   	}&lt;br /&gt;
                	}&lt;br /&gt;
            	}&lt;br /&gt;
        	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
    	} catch (UnknownHostException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	} catch (FtpProtocolException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	} catch (IOException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Trennen Action Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
        try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
            ftp.close();&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das listview ClickAction Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// List Model Deklarieren&lt;br /&gt;
    	mod = (DefaultListModel) jList1.getModel();&lt;br /&gt;
    	// Prüfen ob der Client noch Verbunden ist &lt;br /&gt;
    	if(ftp.isConnected()==true){&lt;br /&gt;
        	//prüfen ob wir noch eingelogt sind&lt;br /&gt;
        	if(ftp.isLoggedIn()==true){&lt;br /&gt;
            	try {&lt;br /&gt;
                	//Verzeichniss Wechselen&lt;br /&gt;
                	ftp.changeDirectory(jList1.getSelectedValue().toString());&lt;br /&gt;
                	// System giebt aus das das Verzeichniss gewechselt wurde&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Verzeichniss Gewechelt nach: &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	System.out.print(&amp;quot;Verzeichniss Gewechselt nach :&amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	// wir Listen die Files in dem Neune Verzeichniss&lt;br /&gt;
                	Iterator&amp;lt;FtpDirEntry&amp;gt; dirs = ftp.listFiles(ftp.getWorkingDirectory());&lt;br /&gt;
                	// wir Löschen die Alten List items&lt;br /&gt;
                	mod.removeAllElements();&lt;br /&gt;
                	Fmod.removeAllElements();&lt;br /&gt;
                	// Wir Tragen die Verzeichniss ein&lt;br /&gt;
                	while(dirs.hasNext()){&lt;br /&gt;
                    	// wir Deklarieren das Element&lt;br /&gt;
                    	direlement=dirs.next();&lt;br /&gt;
                    	// Wir Prüfen ob das Element ein Verzeichniss ist&lt;br /&gt;
                    	if(direlement.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                        	// wir fügen den Verzeichniss namen in die Liste ein&lt;br /&gt;
                        	mod.addElement(direlement.getName());&lt;br /&gt;
                    	}&lt;br /&gt;
                    	else if(direlement.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                        	Fmod.addElement(direlement.getName());&lt;br /&gt;
                    	}&lt;br /&gt;
                	}&lt;br /&gt;
 &lt;br /&gt;
            	} catch (FtpProtocolException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (IOException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	}&lt;br /&gt;
        	}&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== das Multi Download ActionEvent ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Wir Deklarieren den FileChooser&lt;br /&gt;
    	JFileChooser sfd = new JFileChooser();&lt;br /&gt;
    	// Wir schreiben in das Datenfeld Bitte Wählen, da wir nur das Verzeichniss Benötigen&lt;br /&gt;
    	sfd.setSelectedFile(new File(&amp;quot;Bitte Wählen&amp;quot;));&lt;br /&gt;
    	//Wenn Ok Gedrückt Wurde&lt;br /&gt;
    	if(sfd.showSaveDialog(sfd) == JFileChooser.APPROVE_OPTION){&lt;br /&gt;
        	// list erstellen mit Unseren Ausgewählten Daten&lt;br /&gt;
        	Object[] flist = jList2.getSelectedValues();&lt;br /&gt;
        	for(int i = 0; i &amp;lt; flist.length; i++){&lt;br /&gt;
 &lt;br /&gt;
            	try {&lt;br /&gt;
                	// wir geben Aus welche File wir Downloaden möchten&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Get file &amp;quot; + flist[i] + &amp;quot; from Curent Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	System.out.println(&amp;quot;Get file &amp;quot; + flist[i] + &amp;quot; from Curent Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	// neue File Erstellen&lt;br /&gt;
                	File f = new File(sfd.getSelectedFile().getParent() + &amp;quot;/&amp;quot; + flist[i]);&lt;br /&gt;
                	// Output Stream Erstellen&lt;br /&gt;
                	FileOutputStream os = new FileOutputStream(f);&lt;br /&gt;
                	// Datei Herunterladen&lt;br /&gt;
                	ftp.getFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; +flist[i], os);&lt;br /&gt;
                	// Server Antwortet auf unsere Anfrage&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Server: &amp;quot; + ftp.getLastResponseString());&lt;br /&gt;
                	System.out.println(&amp;quot;Server: &amp;quot; + ftp.getLastResponseString());&lt;br /&gt;
            	} catch (FileNotFoundException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (FtpProtocolException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (IOException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        	}&lt;br /&gt;
        	// Ausgeben Das der Download Beendet wurde&lt;br /&gt;
        	Cmod.addElement(&amp;quot;Download Vorgang Beendet&amp;quot;);&lt;br /&gt;
        	System.out.println(&amp;quot;Download Vorgang Beendet&amp;quot;);&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Multi Upload Action Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
//Wir erstellen einen Filechooser zum Wählen der Daten&lt;br /&gt;
        JFileChooser ofd = new JFileChooser();&lt;br /&gt;
        //mehrfach auswahl Aktivieren&lt;br /&gt;
        ofd.setMultiSelectionEnabled(true);&lt;br /&gt;
        // Wenn im Filechooser auf Ok geklickt wird&lt;br /&gt;
        if(ofd.showOpenDialog(ofd)==JFileChooser.APPROVE_OPTION){&lt;br /&gt;
            // Wir Erstellen eine Filelist die unsere Gewählten files Beinhaltet&lt;br /&gt;
            File[] flist = ofd.getSelectedFiles();&lt;br /&gt;
            // Wir laden jede Einzelne File hoch&lt;br /&gt;
            for(int i = 0 ; i&amp;lt;flist.length;i++){&lt;br /&gt;
                try {&lt;br /&gt;
                    // hiier Deklarieren wir die File&lt;br /&gt;
                    File f = flist[i];&lt;br /&gt;
                    // Info für Console&lt;br /&gt;
                    Cmod.addElement(&amp;quot;Put File &amp;quot; + f.getName() + &amp;quot; in to &amp;quot; + ftp.getWorkingDirectory() + &amp;quot; directory&amp;quot;);&lt;br /&gt;
                    System.out.println(&amp;quot;Put File &amp;quot; + f.getName() + &amp;quot; in to &amp;quot; + ftp.getWorkingDirectory() + &amp;quot; directory&amp;quot;);&lt;br /&gt;
                    // Wir erstellen einen Fileinputstream zum Auslesen der Datei&lt;br /&gt;
                    FileInputStream is = new FileInputStream(f);&lt;br /&gt;
                    // Nun wird die Datei ochgeladen&lt;br /&gt;
                    ftp.putFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + f.getName(), is);&lt;br /&gt;
                    // Console giebt server Nachricht aus&lt;br /&gt;
                    Cmod.addElement(&amp;quot;Server: &amp;quot; +ftp.getLastResponseString());&lt;br /&gt;
                    System.out.println(&amp;quot;Server: &amp;quot; +ftp.getLastResponseString());&lt;br /&gt;
                } catch (FileNotFoundException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                } catch (FtpProtocolException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                } catch (IOException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                }&lt;br /&gt;
 &lt;br /&gt;
            }&lt;br /&gt;
            // Console giebt aus das Übertragung beendet Wurde&lt;br /&gt;
            Cmod.addElement(&amp;quot;Übertragung der Files &amp;quot; + flist.toString() + &amp;quot; Beendet&amp;quot;);&lt;br /&gt;
            System.out.println(&amp;quot;Übertragung der Files &amp;quot; + flist.toString() + &amp;quot; Beendet&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Übergerordneter Ordner Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Elemente Entfernen&lt;br /&gt;
            mod.removeAllElements();&lt;br /&gt;
            Fmod.removeAllElements();&lt;br /&gt;
 &lt;br /&gt;
            // FtpDirEntry Deklarieren&lt;br /&gt;
            FtpDirEntry dir;         &lt;br /&gt;
            // Verzeichniss Wechseln&lt;br /&gt;
            ftp.changeToParentDirectory();       &lt;br /&gt;
            // Neues Verzeichniss in Console Ausgeben&lt;br /&gt;
            Cmod.addElement(&amp;quot;Aktuelles Verzeichniss &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
            // Verzeichnisse in eine FtpDirEntry List hinzufügen&lt;br /&gt;
            Iterator&amp;lt;FtpDirEntry&amp;gt; dirlist = ftp.listFiles(ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
            // Jedes Verzeichniss Ausgeben&lt;br /&gt;
            while(dirlist.hasNext()){&lt;br /&gt;
                // dir elemnt Deklarieren&lt;br /&gt;
                dir=dirlist.next();&lt;br /&gt;
 &lt;br /&gt;
                // ist dir ein Ordner ?&lt;br /&gt;
                if(dir.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                    // wenn ja dan in List 1&lt;br /&gt;
                    mod.addElement(dir.getName());&lt;br /&gt;
                }&lt;br /&gt;
                // Ist dir eine Datei ?&lt;br /&gt;
                if(dir.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                    // wenn ja dan in List 2&lt;br /&gt;
                    Fmod.addElement(dir.getName());&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Datei Löschen Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
 &lt;br /&gt;
            // Wir Schreiben in die Console das Wir die Datei Löschen&lt;br /&gt;
            Cmod.addElement(&amp;quot;Delete File &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
            System.out.println(&amp;quot;Delete File &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
 &lt;br /&gt;
            // Wir Löschen die Datei&lt;br /&gt;
            ftp.deleteFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
 &lt;br /&gt;
            // Wir Geben die Server Antwort aus&lt;br /&gt;
            Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
            System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Verzeichniss Löschen Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
                // Wir Schreiben in die Console das Wir das Verzeichniss Löschen&lt;br /&gt;
                Cmod.addElement(&amp;quot;Delete Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                System.out.println(&amp;quot;Delete Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Löschen Das Verzeichniss&lt;br /&gt;
                ftp.removeDirectory(ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Geben die Server Antwort aus&lt;br /&gt;
                Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
                System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Verzeichniss Erstellen Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Deklarieren der Elemente&lt;br /&gt;
        JDialog dia = new JDialog();&lt;br /&gt;
        dia.setSize(375, 110);&lt;br /&gt;
        dia.setLayout(null);&lt;br /&gt;
        dia.setTitle(&amp;quot;Neues Verzeichniss anlegen&amp;quot;);&lt;br /&gt;
        JButton b = new JButton(&amp;quot;Erstellen&amp;quot;);&lt;br /&gt;
        final JTextField textfield = new JTextField();&lt;br /&gt;
 &lt;br /&gt;
        // Platzieren der Elemente&lt;br /&gt;
        textfield.setLocation(25, 25);&lt;br /&gt;
        textfield.setSize(200, 20);&lt;br /&gt;
        b.setLocation(235, 25);&lt;br /&gt;
        b.setSize(100,20);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        // Füge Controls Hinzu&lt;br /&gt;
        dia.add(textfield);&lt;br /&gt;
        dia.add(b);&lt;br /&gt;
        dia.setVisible(true);&lt;br /&gt;
 &lt;br /&gt;
        // Action Listner auf Button Legen&lt;br /&gt;
        b.addActionListener(new ActionListener(){&lt;br /&gt;
        public void actionPerformed(ActionEvent e){&lt;br /&gt;
            try {&lt;br /&gt;
 &lt;br /&gt;
                // Console Giebt aus das wir ein Verzeichniss Erstellen&lt;br /&gt;
                Cmod.addElement(&amp;quot;Create Dir &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
                System.out.println(&amp;quot;Create Dir &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Erstellen das Verzeichniss&lt;br /&gt;
                ftp.makeDirectory(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Geben die System Nachricht aus &lt;br /&gt;
                Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
                System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
            } catch (FtpProtocolException ex) {&lt;br /&gt;
                Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            } catch (IOException ex) {&lt;br /&gt;
                Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
        }&lt;br /&gt;
        });&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war der Letzte Teil des Toturials natürlich Könnte man noch X-Funktionen einfügen aber den Spaß überlasse ich euch. Auf Anfrage Sende ich Auch gerne Die Sourcecodes Zu, einfach im Forum eine PN an Andy16823&lt;/div&gt;</summary>
		<author><name>Andy16823</name></author>
	</entry>
	<entry>
		<id>https://wiki.byte-welt.net/index.php?title=Ftp-Client_Tutorial&amp;diff=5429</id>
		<title>Ftp-Client Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.byte-welt.net/index.php?title=Ftp-Client_Tutorial&amp;diff=5429"/>
		<updated>2013-08-17T18:27:37Z</updated>

		<summary type="html">&lt;p&gt;Andy16823: /* Das Frame */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Java Ftp  Client Tutorial =&lt;br /&gt;
&lt;br /&gt;
Mache mich mal drann um ein Ftp Tutorial zu Schreiben. In Unserem Toturial Erstellen wir einen Multi-Down/Upload Server. Wir Verwenden für Das Toturial die Mitgelieferte Klasse aus der Neusten Java Version. Für dieses Toturial solltest du die Grundlagen von Java Kennen. Auch Enfehle ich eine IDE zu Benutzen die über einen Designer Verfügt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Importierungen ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
import java.awt.List;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.net.InetAddress;&lt;br /&gt;
import java.net.InetSocketAddress;&lt;br /&gt;
import java.net.SocketAddress;&lt;br /&gt;
import java.net.UnknownHostException;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import javax.swing.DefaultListModel;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JDialog;&lt;br /&gt;
import javax.swing.JFileChooser;&lt;br /&gt;
import javax.swing.JTextField;&lt;br /&gt;
import javax.swing.UIManager;&lt;br /&gt;
import javax.swing.UnsupportedLookAndFeelException;&lt;br /&gt;
import javax.swing.tree.DefaultTreeModel;&lt;br /&gt;
import javax.swing.tree.MutableTreeNode;&lt;br /&gt;
import sun.net.ftp.FtpClient;&lt;br /&gt;
import sun.net.ftp.FtpDirEntry;&lt;br /&gt;
import sun.net.ftp.FtpProtocolException;&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Das Frame ==&lt;br /&gt;
Ich habe bei mir das Frame mit einer IDE Geschrieben die einen Desingner Verwendet, aber erfahrene Java Programmierer Sollten dies&lt;br /&gt;
auch in Wenigen Minuten mit einer IDE die Ohne Designer Arbeitet hinbekommen.&lt;br /&gt;
In dem Bild seht Ihr wie ich das Frame Aufgebaut habe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bild22.PNG|gerahmt|Das Frame]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie man Seht befinden sich auf dem Form 3 Listen und ein Menüstrip mit 2 Menüs, 3 textfelder, 1 Passwort Feld und ein Button. Ich habe folgende Listen Modelle den listen zugeordnet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Liste1 (DefaultListModel) mod (diese list zeigt die verzeichnisse an und Verfügt über ein Click ActionEvent&lt;br /&gt;
* Liste2 (DefaultListModel) Fmod (diese liste zeigt die Dateien An, aus dem Aktuellen FTP Verzeichniss.&lt;br /&gt;
* Liste3 (DefaultListModel) Cmod (diese liste dient als Interne Console)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Textfelder Werden folgt Verwendet&lt;br /&gt;
&lt;br /&gt;
* TextFeld1 Hier wird der Server Angegeben&lt;br /&gt;
* Textfeld2 Hier wird der Port Angegeben (Achtung der Port Muss Angegeben werden, bei vielen Servern ist der Standardt Port 21)&lt;br /&gt;
* Textfeld3 Hier Kommt der Benutzername Rein&lt;br /&gt;
* PasswordFeld1 Das Passwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Menü ist Aufgebaut in&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* File&lt;br /&gt;
&lt;br /&gt;
** Verbinden&lt;br /&gt;
** Trenen&lt;br /&gt;
** Daten Uploaden&lt;br /&gt;
** Daten Downloaden&lt;br /&gt;
** Daten Löschen&lt;br /&gt;
** Verzeichniss Löschen&lt;br /&gt;
** Verzeichniss Erstellen&lt;br /&gt;
&lt;br /&gt;
* Edit&lt;br /&gt;
** Übergeordneter Ordner&lt;br /&gt;
&lt;br /&gt;
== Die Codes ==&lt;br /&gt;
&lt;br /&gt;
=== Variabeln in der Klasse ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
//Suchen nach&lt;br /&gt;
public class main extends javax.swing.JFrame {&lt;br /&gt;
//hier diese Einträge Darunter Setzen&lt;br /&gt;
	public DefaultListModel mod;&lt;br /&gt;
	public FtpClient ftp;&lt;br /&gt;
	public FtpDirEntry direlement;&lt;br /&gt;
	public DefaultListModel Fmod;&lt;br /&gt;
	public DefaultListModel Cmod;&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Listen Initialisieren ===&lt;br /&gt;
Ich habe So die Listen Initalisiert&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
public main() {&lt;br /&gt;
initComponents();&lt;br /&gt;
// Hinzufügen&lt;br /&gt;
mod = new DefaultListModel();&lt;br /&gt;
jList1.setModel(mod);&lt;br /&gt;
Fmod = new DefaultListModel();&lt;br /&gt;
jList2.setModel(Fmod);&lt;br /&gt;
Cmod = new DefaultListModel();&lt;br /&gt;
jList3.setModel(Cmod);  &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Verbinden Action Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Elemente aus Modellen Löschen&lt;br /&gt;
        	Fmod.removeAllElements();&lt;br /&gt;
        	mod.removeAllElements();&lt;br /&gt;
        	// deklariren&lt;br /&gt;
        	// Deklarieren des List Models&lt;br /&gt;
        	mod = (DefaultListModel) jList1.getModel();&lt;br /&gt;
        	// holen des Inhaltes aus der Server Text Box&lt;br /&gt;
        	String servUrl=jTextField1.getText();&lt;br /&gt;
        	// holen des Inhaltes aus der Port Text Box&lt;br /&gt;
        	int port=Integer.parseInt(jTextField2.getText());&lt;br /&gt;
        	// Internet Adresse umwandln in IP&lt;br /&gt;
        	String ipAdr = InetAddress.getByName(servUrl).getHostAddress();&lt;br /&gt;
        	// Consolen Anzeige&lt;br /&gt;
        	Cmod.addElement(&amp;quot;Encode Adresse &amp;quot; + servUrl + &amp;quot; in IP Adresse &amp;quot; + ipAdr);&lt;br /&gt;
        	System.out.println(&amp;quot;Endode Addresse in IP: &amp;quot; + ipAdr);   	&lt;br /&gt;
        	// Socket Addresse Deklarieren&lt;br /&gt;
        	SocketAddress sAdr = new InetSocketAddress(ipAdr,port);&lt;br /&gt;
        	// Deklarieren des ftpClients&lt;br /&gt;
        	ftp =  FtpClient.create();&lt;br /&gt;
 &lt;br /&gt;
        	// Benutzername Festelgen&lt;br /&gt;
        	String userName = jTextField3.getText();&lt;br /&gt;
 &lt;br /&gt;
        	//Verbindung Aufbauen&lt;br /&gt;
        	ftp.connect(sAdr);&lt;br /&gt;
        	//Wen Verbindung Besteht, einlogen&lt;br /&gt;
        	if(ftp.isConnected()==true){&lt;br /&gt;
            	// Console giebt aus das wir uns erfolgreich verbunden haben&lt;br /&gt;
            	Cmod.addElement(&amp;quot;Erfolgreich mit Server &amp;quot; + ipAdr + &amp;quot; Verbunden&amp;quot;);&lt;br /&gt;
            	System.out.println(&amp;quot;Erfolgreich mit Server &amp;quot; + ipAdr + &amp;quot; Verbunden&amp;quot;);&lt;br /&gt;
             	// Wir lassen Uns die Begrüßungsnachricht ausgeben&lt;br /&gt;
            	System.out.print(ftp.getWelcomeMsg());&lt;br /&gt;
            	Cmod.addElement(ftp.getWelcomeMsg());&lt;br /&gt;
            	// Hier Loggen wir uns in den Server ein&lt;br /&gt;
            	ftp.login(userName, jPasswordField1.getPassword());&lt;br /&gt;
            	// Wenn wir Eingelogt Sind &lt;br /&gt;
            	if(ftp.isLoggedIn()==true){&lt;br /&gt;
                	// Wir Bekommen eine nachricht vom Server das wir uns Erfolgreich Eingelogt sind&lt;br /&gt;
                	Cmod.addElement(&amp;quot;User &amp;quot; + userName + &amp;quot; Access Garanted&amp;quot;);&lt;br /&gt;
                	System.out.println(&amp;quot;User: &amp;quot; + userName + &amp;quot; ist erfolgreich im Server eingelogt&amp;quot;);&lt;br /&gt;
                	// Nun deklarieren wir unser Aktuelles Verzeichniss&lt;br /&gt;
                	String dir = ftp.getWorkingDirectory();&lt;br /&gt;
                	// Nun lesen wir die Verzeichnisse Aus&lt;br /&gt;
                	Iterator&amp;lt;FtpDirEntry&amp;gt; dirlist = ftp.listFiles(dir);&lt;br /&gt;
                	// Listview Model leeren&lt;br /&gt;
                	mod.removeAllElements();&lt;br /&gt;
                	// hinzufügen der neune Verzeichnisse&lt;br /&gt;
                	while(dirlist.hasNext()){&lt;br /&gt;
                   	// elemnt in die DirEntry hinzufügen&lt;br /&gt;
                   	direlement = dirlist.next();&lt;br /&gt;
                   	// Prüfen ob es ein Verzeichniss ist&lt;br /&gt;
                   	if(direlement.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                       	// in Model Hinzufügen&lt;br /&gt;
                       	mod.addElement(direlement.getName());&lt;br /&gt;
                   	}&lt;br /&gt;
                   	if(direlement.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                       	Fmod.addElement(direlement.getName());&lt;br /&gt;
                   	}&lt;br /&gt;
                	}&lt;br /&gt;
            	}&lt;br /&gt;
        	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
    	} catch (UnknownHostException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	} catch (FtpProtocolException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	} catch (IOException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Trennen Action Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
        try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
            ftp.close();&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das listview ClickAction Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// List Model Deklarieren&lt;br /&gt;
    	mod = (DefaultListModel) jList1.getModel();&lt;br /&gt;
    	// Prüfen ob der Client noch Verbunden ist &lt;br /&gt;
    	if(ftp.isConnected()==true){&lt;br /&gt;
        	//prüfen ob wir noch eingelogt sind&lt;br /&gt;
        	if(ftp.isLoggedIn()==true){&lt;br /&gt;
            	try {&lt;br /&gt;
                	//Verzeichniss Wechselen&lt;br /&gt;
                	ftp.changeDirectory(jList1.getSelectedValue().toString());&lt;br /&gt;
                	// System giebt aus das das Verzeichniss gewechselt wurde&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Verzeichniss Gewechelt nach: &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	System.out.print(&amp;quot;Verzeichniss Gewechselt nach :&amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	// wir Listen die Files in dem Neune Verzeichniss&lt;br /&gt;
                	Iterator&amp;lt;FtpDirEntry&amp;gt; dirs = ftp.listFiles(ftp.getWorkingDirectory());&lt;br /&gt;
                	// wir Löschen die Alten List items&lt;br /&gt;
                	mod.removeAllElements();&lt;br /&gt;
                	Fmod.removeAllElements();&lt;br /&gt;
                	// Wir Tragen die Verzeichniss ein&lt;br /&gt;
                	while(dirs.hasNext()){&lt;br /&gt;
                    	// wir Deklarieren das Element&lt;br /&gt;
                    	direlement=dirs.next();&lt;br /&gt;
                    	// Wir Prüfen ob das Element ein Verzeichniss ist&lt;br /&gt;
                    	if(direlement.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                        	// wir fügen den Verzeichniss namen in die Liste ein&lt;br /&gt;
                        	mod.addElement(direlement.getName());&lt;br /&gt;
                    	}&lt;br /&gt;
                    	else if(direlement.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                        	Fmod.addElement(direlement.getName());&lt;br /&gt;
                    	}&lt;br /&gt;
                	}&lt;br /&gt;
 &lt;br /&gt;
            	} catch (FtpProtocolException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (IOException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	}&lt;br /&gt;
        	}&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== das Multi Download ActionEvent ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Wir Deklarieren den FileChooser&lt;br /&gt;
    	JFileChooser sfd = new JFileChooser();&lt;br /&gt;
    	// Wir schreiben in das Datenfeld Bitte Wählen, da wir nur das Verzeichniss Benötigen&lt;br /&gt;
    	sfd.setSelectedFile(new File(&amp;quot;Bitte Wählen&amp;quot;));&lt;br /&gt;
    	//Wenn Ok Gedrückt Wurde&lt;br /&gt;
    	if(sfd.showSaveDialog(sfd) == JFileChooser.APPROVE_OPTION){&lt;br /&gt;
        	// list erstellen mit Unseren Ausgewählten Daten&lt;br /&gt;
        	Object[] flist = jList2.getSelectedValues();&lt;br /&gt;
        	for(int i = 0; i &amp;lt; flist.length; i++){&lt;br /&gt;
 &lt;br /&gt;
            	try {&lt;br /&gt;
                	// wir geben Aus welche File wir Downloaden möchten&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Get file &amp;quot; + flist[i] + &amp;quot; from Curent Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	System.out.println(&amp;quot;Get file &amp;quot; + flist[i] + &amp;quot; from Curent Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	// neue File Erstellen&lt;br /&gt;
                	File f = new File(sfd.getSelectedFile().getParent() + &amp;quot;/&amp;quot; + flist[i]);&lt;br /&gt;
                	// Output Stream Erstellen&lt;br /&gt;
                	FileOutputStream os = new FileOutputStream(f);&lt;br /&gt;
                	// Datei Herunterladen&lt;br /&gt;
                	ftp.getFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; +flist[i], os);&lt;br /&gt;
                	// Server Antwortet auf unsere Anfrage&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Server: &amp;quot; + ftp.getLastResponseString());&lt;br /&gt;
                	System.out.println(&amp;quot;Server: &amp;quot; + ftp.getLastResponseString());&lt;br /&gt;
            	} catch (FileNotFoundException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (FtpProtocolException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (IOException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        	}&lt;br /&gt;
        	// Ausgeben Das der Download Beendet wurde&lt;br /&gt;
        	Cmod.addElement(&amp;quot;Download Vorgang Beendet&amp;quot;);&lt;br /&gt;
        	System.out.println(&amp;quot;Download Vorgang Beendet&amp;quot;);&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Multi Upload Action Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
//Wir erstellen einen Filechooser zum Wählen der Daten&lt;br /&gt;
        JFileChooser ofd = new JFileChooser();&lt;br /&gt;
        //mehrfach auswahl Aktivieren&lt;br /&gt;
        ofd.setMultiSelectionEnabled(true);&lt;br /&gt;
        // Wenn im Filechooser auf Ok geklickt wird&lt;br /&gt;
        if(ofd.showOpenDialog(ofd)==JFileChooser.APPROVE_OPTION){&lt;br /&gt;
            // Wir Erstellen eine Filelist die unsere Gewählten files Beinhaltet&lt;br /&gt;
            File[] flist = ofd.getSelectedFiles();&lt;br /&gt;
            // Wir laden jede Einzelne File hoch&lt;br /&gt;
            for(int i = 0 ; i&amp;lt;flist.length;i++){&lt;br /&gt;
                try {&lt;br /&gt;
                    // hiier Deklarieren wir die File&lt;br /&gt;
                    File f = flist[i];&lt;br /&gt;
                    // Info für Console&lt;br /&gt;
                    Cmod.addElement(&amp;quot;Put File &amp;quot; + f.getName() + &amp;quot; in to &amp;quot; + ftp.getWorkingDirectory() + &amp;quot; directory&amp;quot;);&lt;br /&gt;
                    System.out.println(&amp;quot;Put File &amp;quot; + f.getName() + &amp;quot; in to &amp;quot; + ftp.getWorkingDirectory() + &amp;quot; directory&amp;quot;);&lt;br /&gt;
                    // Wir erstellen einen Fileinputstream zum Auslesen der Datei&lt;br /&gt;
                    FileInputStream is = new FileInputStream(f);&lt;br /&gt;
                    // Nun wird die Datei ochgeladen&lt;br /&gt;
                    ftp.putFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + f.getName(), is);&lt;br /&gt;
                    // Console giebt server Nachricht aus&lt;br /&gt;
                    Cmod.addElement(&amp;quot;Server: &amp;quot; +ftp.getLastResponseString());&lt;br /&gt;
                    System.out.println(&amp;quot;Server: &amp;quot; +ftp.getLastResponseString());&lt;br /&gt;
                } catch (FileNotFoundException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                } catch (FtpProtocolException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                } catch (IOException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                }&lt;br /&gt;
 &lt;br /&gt;
            }&lt;br /&gt;
            // Console giebt aus das Übertragung beendet Wurde&lt;br /&gt;
            Cmod.addElement(&amp;quot;Übertragung der Files &amp;quot; + flist.toString() + &amp;quot; Beendet&amp;quot;);&lt;br /&gt;
            System.out.println(&amp;quot;Übertragung der Files &amp;quot; + flist.toString() + &amp;quot; Beendet&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Übergerordneter Ordner Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Elemente Entfernen&lt;br /&gt;
            mod.removeAllElements();&lt;br /&gt;
            Fmod.removeAllElements();&lt;br /&gt;
 &lt;br /&gt;
            // FtpDirEntry Deklarieren&lt;br /&gt;
            FtpDirEntry dir;         &lt;br /&gt;
            // Verzeichniss Wechseln&lt;br /&gt;
            ftp.changeToParentDirectory();       &lt;br /&gt;
            // Neues Verzeichniss in Console Ausgeben&lt;br /&gt;
            Cmod.addElement(&amp;quot;Aktuelles Verzeichniss &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
            // Verzeichnisse in eine FtpDirEntry List hinzufügen&lt;br /&gt;
            Iterator&amp;lt;FtpDirEntry&amp;gt; dirlist = ftp.listFiles(ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
            // Jedes Verzeichniss Ausgeben&lt;br /&gt;
            while(dirlist.hasNext()){&lt;br /&gt;
                // dir elemnt Deklarieren&lt;br /&gt;
                dir=dirlist.next();&lt;br /&gt;
 &lt;br /&gt;
                // ist dir ein Ordner ?&lt;br /&gt;
                if(dir.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                    // wenn ja dan in List 1&lt;br /&gt;
                    mod.addElement(dir.getName());&lt;br /&gt;
                }&lt;br /&gt;
                // Ist dir eine Datei ?&lt;br /&gt;
                if(dir.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                    // wenn ja dan in List 2&lt;br /&gt;
                    Fmod.addElement(dir.getName());&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Datei Löschen Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
 &lt;br /&gt;
            // Wir Schreiben in die Console das Wir die Datei Löschen&lt;br /&gt;
            Cmod.addElement(&amp;quot;Delete File &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
            System.out.println(&amp;quot;Delete File &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
 &lt;br /&gt;
            // Wir Löschen die Datei&lt;br /&gt;
            ftp.deleteFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
 &lt;br /&gt;
            // Wir Geben die Server Antwort aus&lt;br /&gt;
            Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
            System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Verzeichniss Löschen Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
                // Wir Schreiben in die Console das Wir das Verzeichniss Löschen&lt;br /&gt;
                Cmod.addElement(&amp;quot;Delete Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                System.out.println(&amp;quot;Delete Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Löschen Das Verzeichniss&lt;br /&gt;
                ftp.removeDirectory(ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Geben die Server Antwort aus&lt;br /&gt;
                Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
                System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Verzeichniss Erstellen Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Deklarieren der Elemente&lt;br /&gt;
        JDialog dia = new JDialog();&lt;br /&gt;
        dia.setSize(375, 110);&lt;br /&gt;
        dia.setLayout(null);&lt;br /&gt;
        dia.setTitle(&amp;quot;Neues Verzeichniss anlegen&amp;quot;);&lt;br /&gt;
        JButton b = new JButton(&amp;quot;Erstellen&amp;quot;);&lt;br /&gt;
        final JTextField textfield = new JTextField();&lt;br /&gt;
 &lt;br /&gt;
        // Platzieren der Elemente&lt;br /&gt;
        textfield.setLocation(25, 25);&lt;br /&gt;
        textfield.setSize(200, 20);&lt;br /&gt;
        b.setLocation(235, 25);&lt;br /&gt;
        b.setSize(100,20);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        // Füge Controls Hinzu&lt;br /&gt;
        dia.add(textfield);&lt;br /&gt;
        dia.add(b);&lt;br /&gt;
        dia.setVisible(true);&lt;br /&gt;
 &lt;br /&gt;
        // Action Listner auf Button Legen&lt;br /&gt;
        b.addActionListener(new ActionListener(){&lt;br /&gt;
        public void actionPerformed(ActionEvent e){&lt;br /&gt;
            try {&lt;br /&gt;
 &lt;br /&gt;
                // Console Giebt aus das wir ein Verzeichniss Erstellen&lt;br /&gt;
                Cmod.addElement(&amp;quot;Create Dir &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
                System.out.println(&amp;quot;Create Dir &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Erstellen das Verzeichniss&lt;br /&gt;
                ftp.makeDirectory(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Geben die System Nachricht aus &lt;br /&gt;
                Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
                System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
            } catch (FtpProtocolException ex) {&lt;br /&gt;
                Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            } catch (IOException ex) {&lt;br /&gt;
                Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
        }&lt;br /&gt;
        });&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war der Letzte Teil des Toturials natürlich Könnte man noch X-Funktionen einfügen aber den Spaß überlasse ich euch. Auf Anfrage Sende ich Auch gerne Die Sourcecodes Zu, einfach im Forum eine PN an Andy16823&lt;/div&gt;</summary>
		<author><name>Andy16823</name></author>
	</entry>
	<entry>
		<id>https://wiki.byte-welt.net/index.php?title=Ftp-Client_Tutorial&amp;diff=5428</id>
		<title>Ftp-Client Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.byte-welt.net/index.php?title=Ftp-Client_Tutorial&amp;diff=5428"/>
		<updated>2013-08-17T18:27:02Z</updated>

		<summary type="html">&lt;p&gt;Andy16823: /* Das Frame */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Java Ftp  Client Tutorial =&lt;br /&gt;
&lt;br /&gt;
Mache mich mal drann um ein Ftp Tutorial zu Schreiben. In Unserem Toturial Erstellen wir einen Multi-Down/Upload Server. Wir Verwenden für Das Toturial die Mitgelieferte Klasse aus der Neusten Java Version. Für dieses Toturial solltest du die Grundlagen von Java Kennen. Auch Enfehle ich eine IDE zu Benutzen die über einen Designer Verfügt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Importierungen ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
import java.awt.List;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.net.InetAddress;&lt;br /&gt;
import java.net.InetSocketAddress;&lt;br /&gt;
import java.net.SocketAddress;&lt;br /&gt;
import java.net.UnknownHostException;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import javax.swing.DefaultListModel;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JDialog;&lt;br /&gt;
import javax.swing.JFileChooser;&lt;br /&gt;
import javax.swing.JTextField;&lt;br /&gt;
import javax.swing.UIManager;&lt;br /&gt;
import javax.swing.UnsupportedLookAndFeelException;&lt;br /&gt;
import javax.swing.tree.DefaultTreeModel;&lt;br /&gt;
import javax.swing.tree.MutableTreeNode;&lt;br /&gt;
import sun.net.ftp.FtpClient;&lt;br /&gt;
import sun.net.ftp.FtpDirEntry;&lt;br /&gt;
import sun.net.ftp.FtpProtocolException;&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Das Frame ==&lt;br /&gt;
Ich habe bei mir das Frame mit einer IDE Geschrieben die einen Desingner Verwendet, aber erfahrene Java Programmierer Sollten dies&lt;br /&gt;
auch in Wenigen Minuten mit einer IDE die Ohne Designer Arbeitet hinbekommen.&lt;br /&gt;
In dem Bild seht Ihr wie ich das Frame Aufgebaut habe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Feather 150 Bild22.PNG|gerahmt|Das Frame]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie man Seht befinden sich auf dem Form 3 Listen und ein Menüstrip mit 2 Menüs, 3 textfelder, 1 Passwort Feld und ein Button. Ich habe folgende Listen Modelle den listen zugeordnet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Liste1 (DefaultListModel) mod (diese list zeigt die verzeichnisse an und Verfügt über ein Click ActionEvent&lt;br /&gt;
* Liste2 (DefaultListModel) Fmod (diese liste zeigt die Dateien An, aus dem Aktuellen FTP Verzeichniss.&lt;br /&gt;
* Liste3 (DefaultListModel) Cmod (diese liste dient als Interne Console)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Textfelder Werden folgt Verwendet&lt;br /&gt;
&lt;br /&gt;
* TextFeld1 Hier wird der Server Angegeben&lt;br /&gt;
* Textfeld2 Hier wird der Port Angegeben (Achtung der Port Muss Angegeben werden, bei vielen Servern ist der Standardt Port 21)&lt;br /&gt;
* Textfeld3 Hier Kommt der Benutzername Rein&lt;br /&gt;
* PasswordFeld1 Das Passwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Menü ist Aufgebaut in&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* File&lt;br /&gt;
&lt;br /&gt;
** Verbinden&lt;br /&gt;
** Trenen&lt;br /&gt;
** Daten Uploaden&lt;br /&gt;
** Daten Downloaden&lt;br /&gt;
** Daten Löschen&lt;br /&gt;
** Verzeichniss Löschen&lt;br /&gt;
** Verzeichniss Erstellen&lt;br /&gt;
&lt;br /&gt;
* Edit&lt;br /&gt;
** Übergeordneter Ordner&lt;br /&gt;
&lt;br /&gt;
== Die Codes ==&lt;br /&gt;
&lt;br /&gt;
=== Variabeln in der Klasse ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
//Suchen nach&lt;br /&gt;
public class main extends javax.swing.JFrame {&lt;br /&gt;
//hier diese Einträge Darunter Setzen&lt;br /&gt;
	public DefaultListModel mod;&lt;br /&gt;
	public FtpClient ftp;&lt;br /&gt;
	public FtpDirEntry direlement;&lt;br /&gt;
	public DefaultListModel Fmod;&lt;br /&gt;
	public DefaultListModel Cmod;&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Listen Initialisieren ===&lt;br /&gt;
Ich habe So die Listen Initalisiert&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
public main() {&lt;br /&gt;
initComponents();&lt;br /&gt;
// Hinzufügen&lt;br /&gt;
mod = new DefaultListModel();&lt;br /&gt;
jList1.setModel(mod);&lt;br /&gt;
Fmod = new DefaultListModel();&lt;br /&gt;
jList2.setModel(Fmod);&lt;br /&gt;
Cmod = new DefaultListModel();&lt;br /&gt;
jList3.setModel(Cmod);  &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Verbinden Action Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Elemente aus Modellen Löschen&lt;br /&gt;
        	Fmod.removeAllElements();&lt;br /&gt;
        	mod.removeAllElements();&lt;br /&gt;
        	// deklariren&lt;br /&gt;
        	// Deklarieren des List Models&lt;br /&gt;
        	mod = (DefaultListModel) jList1.getModel();&lt;br /&gt;
        	// holen des Inhaltes aus der Server Text Box&lt;br /&gt;
        	String servUrl=jTextField1.getText();&lt;br /&gt;
        	// holen des Inhaltes aus der Port Text Box&lt;br /&gt;
        	int port=Integer.parseInt(jTextField2.getText());&lt;br /&gt;
        	// Internet Adresse umwandln in IP&lt;br /&gt;
        	String ipAdr = InetAddress.getByName(servUrl).getHostAddress();&lt;br /&gt;
        	// Consolen Anzeige&lt;br /&gt;
        	Cmod.addElement(&amp;quot;Encode Adresse &amp;quot; + servUrl + &amp;quot; in IP Adresse &amp;quot; + ipAdr);&lt;br /&gt;
        	System.out.println(&amp;quot;Endode Addresse in IP: &amp;quot; + ipAdr);   	&lt;br /&gt;
        	// Socket Addresse Deklarieren&lt;br /&gt;
        	SocketAddress sAdr = new InetSocketAddress(ipAdr,port);&lt;br /&gt;
        	// Deklarieren des ftpClients&lt;br /&gt;
        	ftp =  FtpClient.create();&lt;br /&gt;
 &lt;br /&gt;
        	// Benutzername Festelgen&lt;br /&gt;
        	String userName = jTextField3.getText();&lt;br /&gt;
 &lt;br /&gt;
        	//Verbindung Aufbauen&lt;br /&gt;
        	ftp.connect(sAdr);&lt;br /&gt;
        	//Wen Verbindung Besteht, einlogen&lt;br /&gt;
        	if(ftp.isConnected()==true){&lt;br /&gt;
            	// Console giebt aus das wir uns erfolgreich verbunden haben&lt;br /&gt;
            	Cmod.addElement(&amp;quot;Erfolgreich mit Server &amp;quot; + ipAdr + &amp;quot; Verbunden&amp;quot;);&lt;br /&gt;
            	System.out.println(&amp;quot;Erfolgreich mit Server &amp;quot; + ipAdr + &amp;quot; Verbunden&amp;quot;);&lt;br /&gt;
             	// Wir lassen Uns die Begrüßungsnachricht ausgeben&lt;br /&gt;
            	System.out.print(ftp.getWelcomeMsg());&lt;br /&gt;
            	Cmod.addElement(ftp.getWelcomeMsg());&lt;br /&gt;
            	// Hier Loggen wir uns in den Server ein&lt;br /&gt;
            	ftp.login(userName, jPasswordField1.getPassword());&lt;br /&gt;
            	// Wenn wir Eingelogt Sind &lt;br /&gt;
            	if(ftp.isLoggedIn()==true){&lt;br /&gt;
                	// Wir Bekommen eine nachricht vom Server das wir uns Erfolgreich Eingelogt sind&lt;br /&gt;
                	Cmod.addElement(&amp;quot;User &amp;quot; + userName + &amp;quot; Access Garanted&amp;quot;);&lt;br /&gt;
                	System.out.println(&amp;quot;User: &amp;quot; + userName + &amp;quot; ist erfolgreich im Server eingelogt&amp;quot;);&lt;br /&gt;
                	// Nun deklarieren wir unser Aktuelles Verzeichniss&lt;br /&gt;
                	String dir = ftp.getWorkingDirectory();&lt;br /&gt;
                	// Nun lesen wir die Verzeichnisse Aus&lt;br /&gt;
                	Iterator&amp;lt;FtpDirEntry&amp;gt; dirlist = ftp.listFiles(dir);&lt;br /&gt;
                	// Listview Model leeren&lt;br /&gt;
                	mod.removeAllElements();&lt;br /&gt;
                	// hinzufügen der neune Verzeichnisse&lt;br /&gt;
                	while(dirlist.hasNext()){&lt;br /&gt;
                   	// elemnt in die DirEntry hinzufügen&lt;br /&gt;
                   	direlement = dirlist.next();&lt;br /&gt;
                   	// Prüfen ob es ein Verzeichniss ist&lt;br /&gt;
                   	if(direlement.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                       	// in Model Hinzufügen&lt;br /&gt;
                       	mod.addElement(direlement.getName());&lt;br /&gt;
                   	}&lt;br /&gt;
                   	if(direlement.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                       	Fmod.addElement(direlement.getName());&lt;br /&gt;
                   	}&lt;br /&gt;
                	}&lt;br /&gt;
            	}&lt;br /&gt;
        	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
    	} catch (UnknownHostException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	} catch (FtpProtocolException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	} catch (IOException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Trennen Action Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
        try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
            ftp.close();&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das listview ClickAction Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// List Model Deklarieren&lt;br /&gt;
    	mod = (DefaultListModel) jList1.getModel();&lt;br /&gt;
    	// Prüfen ob der Client noch Verbunden ist &lt;br /&gt;
    	if(ftp.isConnected()==true){&lt;br /&gt;
        	//prüfen ob wir noch eingelogt sind&lt;br /&gt;
        	if(ftp.isLoggedIn()==true){&lt;br /&gt;
            	try {&lt;br /&gt;
                	//Verzeichniss Wechselen&lt;br /&gt;
                	ftp.changeDirectory(jList1.getSelectedValue().toString());&lt;br /&gt;
                	// System giebt aus das das Verzeichniss gewechselt wurde&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Verzeichniss Gewechelt nach: &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	System.out.print(&amp;quot;Verzeichniss Gewechselt nach :&amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	// wir Listen die Files in dem Neune Verzeichniss&lt;br /&gt;
                	Iterator&amp;lt;FtpDirEntry&amp;gt; dirs = ftp.listFiles(ftp.getWorkingDirectory());&lt;br /&gt;
                	// wir Löschen die Alten List items&lt;br /&gt;
                	mod.removeAllElements();&lt;br /&gt;
                	Fmod.removeAllElements();&lt;br /&gt;
                	// Wir Tragen die Verzeichniss ein&lt;br /&gt;
                	while(dirs.hasNext()){&lt;br /&gt;
                    	// wir Deklarieren das Element&lt;br /&gt;
                    	direlement=dirs.next();&lt;br /&gt;
                    	// Wir Prüfen ob das Element ein Verzeichniss ist&lt;br /&gt;
                    	if(direlement.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                        	// wir fügen den Verzeichniss namen in die Liste ein&lt;br /&gt;
                        	mod.addElement(direlement.getName());&lt;br /&gt;
                    	}&lt;br /&gt;
                    	else if(direlement.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                        	Fmod.addElement(direlement.getName());&lt;br /&gt;
                    	}&lt;br /&gt;
                	}&lt;br /&gt;
 &lt;br /&gt;
            	} catch (FtpProtocolException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (IOException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	}&lt;br /&gt;
        	}&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== das Multi Download ActionEvent ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Wir Deklarieren den FileChooser&lt;br /&gt;
    	JFileChooser sfd = new JFileChooser();&lt;br /&gt;
    	// Wir schreiben in das Datenfeld Bitte Wählen, da wir nur das Verzeichniss Benötigen&lt;br /&gt;
    	sfd.setSelectedFile(new File(&amp;quot;Bitte Wählen&amp;quot;));&lt;br /&gt;
    	//Wenn Ok Gedrückt Wurde&lt;br /&gt;
    	if(sfd.showSaveDialog(sfd) == JFileChooser.APPROVE_OPTION){&lt;br /&gt;
        	// list erstellen mit Unseren Ausgewählten Daten&lt;br /&gt;
        	Object[] flist = jList2.getSelectedValues();&lt;br /&gt;
        	for(int i = 0; i &amp;lt; flist.length; i++){&lt;br /&gt;
 &lt;br /&gt;
            	try {&lt;br /&gt;
                	// wir geben Aus welche File wir Downloaden möchten&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Get file &amp;quot; + flist[i] + &amp;quot; from Curent Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	System.out.println(&amp;quot;Get file &amp;quot; + flist[i] + &amp;quot; from Curent Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	// neue File Erstellen&lt;br /&gt;
                	File f = new File(sfd.getSelectedFile().getParent() + &amp;quot;/&amp;quot; + flist[i]);&lt;br /&gt;
                	// Output Stream Erstellen&lt;br /&gt;
                	FileOutputStream os = new FileOutputStream(f);&lt;br /&gt;
                	// Datei Herunterladen&lt;br /&gt;
                	ftp.getFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; +flist[i], os);&lt;br /&gt;
                	// Server Antwortet auf unsere Anfrage&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Server: &amp;quot; + ftp.getLastResponseString());&lt;br /&gt;
                	System.out.println(&amp;quot;Server: &amp;quot; + ftp.getLastResponseString());&lt;br /&gt;
            	} catch (FileNotFoundException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (FtpProtocolException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (IOException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        	}&lt;br /&gt;
        	// Ausgeben Das der Download Beendet wurde&lt;br /&gt;
        	Cmod.addElement(&amp;quot;Download Vorgang Beendet&amp;quot;);&lt;br /&gt;
        	System.out.println(&amp;quot;Download Vorgang Beendet&amp;quot;);&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Multi Upload Action Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
//Wir erstellen einen Filechooser zum Wählen der Daten&lt;br /&gt;
        JFileChooser ofd = new JFileChooser();&lt;br /&gt;
        //mehrfach auswahl Aktivieren&lt;br /&gt;
        ofd.setMultiSelectionEnabled(true);&lt;br /&gt;
        // Wenn im Filechooser auf Ok geklickt wird&lt;br /&gt;
        if(ofd.showOpenDialog(ofd)==JFileChooser.APPROVE_OPTION){&lt;br /&gt;
            // Wir Erstellen eine Filelist die unsere Gewählten files Beinhaltet&lt;br /&gt;
            File[] flist = ofd.getSelectedFiles();&lt;br /&gt;
            // Wir laden jede Einzelne File hoch&lt;br /&gt;
            for(int i = 0 ; i&amp;lt;flist.length;i++){&lt;br /&gt;
                try {&lt;br /&gt;
                    // hiier Deklarieren wir die File&lt;br /&gt;
                    File f = flist[i];&lt;br /&gt;
                    // Info für Console&lt;br /&gt;
                    Cmod.addElement(&amp;quot;Put File &amp;quot; + f.getName() + &amp;quot; in to &amp;quot; + ftp.getWorkingDirectory() + &amp;quot; directory&amp;quot;);&lt;br /&gt;
                    System.out.println(&amp;quot;Put File &amp;quot; + f.getName() + &amp;quot; in to &amp;quot; + ftp.getWorkingDirectory() + &amp;quot; directory&amp;quot;);&lt;br /&gt;
                    // Wir erstellen einen Fileinputstream zum Auslesen der Datei&lt;br /&gt;
                    FileInputStream is = new FileInputStream(f);&lt;br /&gt;
                    // Nun wird die Datei ochgeladen&lt;br /&gt;
                    ftp.putFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + f.getName(), is);&lt;br /&gt;
                    // Console giebt server Nachricht aus&lt;br /&gt;
                    Cmod.addElement(&amp;quot;Server: &amp;quot; +ftp.getLastResponseString());&lt;br /&gt;
                    System.out.println(&amp;quot;Server: &amp;quot; +ftp.getLastResponseString());&lt;br /&gt;
                } catch (FileNotFoundException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                } catch (FtpProtocolException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                } catch (IOException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                }&lt;br /&gt;
 &lt;br /&gt;
            }&lt;br /&gt;
            // Console giebt aus das Übertragung beendet Wurde&lt;br /&gt;
            Cmod.addElement(&amp;quot;Übertragung der Files &amp;quot; + flist.toString() + &amp;quot; Beendet&amp;quot;);&lt;br /&gt;
            System.out.println(&amp;quot;Übertragung der Files &amp;quot; + flist.toString() + &amp;quot; Beendet&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Übergerordneter Ordner Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Elemente Entfernen&lt;br /&gt;
            mod.removeAllElements();&lt;br /&gt;
            Fmod.removeAllElements();&lt;br /&gt;
 &lt;br /&gt;
            // FtpDirEntry Deklarieren&lt;br /&gt;
            FtpDirEntry dir;         &lt;br /&gt;
            // Verzeichniss Wechseln&lt;br /&gt;
            ftp.changeToParentDirectory();       &lt;br /&gt;
            // Neues Verzeichniss in Console Ausgeben&lt;br /&gt;
            Cmod.addElement(&amp;quot;Aktuelles Verzeichniss &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
            // Verzeichnisse in eine FtpDirEntry List hinzufügen&lt;br /&gt;
            Iterator&amp;lt;FtpDirEntry&amp;gt; dirlist = ftp.listFiles(ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
            // Jedes Verzeichniss Ausgeben&lt;br /&gt;
            while(dirlist.hasNext()){&lt;br /&gt;
                // dir elemnt Deklarieren&lt;br /&gt;
                dir=dirlist.next();&lt;br /&gt;
 &lt;br /&gt;
                // ist dir ein Ordner ?&lt;br /&gt;
                if(dir.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                    // wenn ja dan in List 1&lt;br /&gt;
                    mod.addElement(dir.getName());&lt;br /&gt;
                }&lt;br /&gt;
                // Ist dir eine Datei ?&lt;br /&gt;
                if(dir.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                    // wenn ja dan in List 2&lt;br /&gt;
                    Fmod.addElement(dir.getName());&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Datei Löschen Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
 &lt;br /&gt;
            // Wir Schreiben in die Console das Wir die Datei Löschen&lt;br /&gt;
            Cmod.addElement(&amp;quot;Delete File &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
            System.out.println(&amp;quot;Delete File &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
 &lt;br /&gt;
            // Wir Löschen die Datei&lt;br /&gt;
            ftp.deleteFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
 &lt;br /&gt;
            // Wir Geben die Server Antwort aus&lt;br /&gt;
            Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
            System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Verzeichniss Löschen Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
                // Wir Schreiben in die Console das Wir das Verzeichniss Löschen&lt;br /&gt;
                Cmod.addElement(&amp;quot;Delete Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                System.out.println(&amp;quot;Delete Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Löschen Das Verzeichniss&lt;br /&gt;
                ftp.removeDirectory(ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Geben die Server Antwort aus&lt;br /&gt;
                Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
                System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Verzeichniss Erstellen Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Deklarieren der Elemente&lt;br /&gt;
        JDialog dia = new JDialog();&lt;br /&gt;
        dia.setSize(375, 110);&lt;br /&gt;
        dia.setLayout(null);&lt;br /&gt;
        dia.setTitle(&amp;quot;Neues Verzeichniss anlegen&amp;quot;);&lt;br /&gt;
        JButton b = new JButton(&amp;quot;Erstellen&amp;quot;);&lt;br /&gt;
        final JTextField textfield = new JTextField();&lt;br /&gt;
 &lt;br /&gt;
        // Platzieren der Elemente&lt;br /&gt;
        textfield.setLocation(25, 25);&lt;br /&gt;
        textfield.setSize(200, 20);&lt;br /&gt;
        b.setLocation(235, 25);&lt;br /&gt;
        b.setSize(100,20);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        // Füge Controls Hinzu&lt;br /&gt;
        dia.add(textfield);&lt;br /&gt;
        dia.add(b);&lt;br /&gt;
        dia.setVisible(true);&lt;br /&gt;
 &lt;br /&gt;
        // Action Listner auf Button Legen&lt;br /&gt;
        b.addActionListener(new ActionListener(){&lt;br /&gt;
        public void actionPerformed(ActionEvent e){&lt;br /&gt;
            try {&lt;br /&gt;
 &lt;br /&gt;
                // Console Giebt aus das wir ein Verzeichniss Erstellen&lt;br /&gt;
                Cmod.addElement(&amp;quot;Create Dir &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
                System.out.println(&amp;quot;Create Dir &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Erstellen das Verzeichniss&lt;br /&gt;
                ftp.makeDirectory(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Geben die System Nachricht aus &lt;br /&gt;
                Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
                System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
            } catch (FtpProtocolException ex) {&lt;br /&gt;
                Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            } catch (IOException ex) {&lt;br /&gt;
                Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
        }&lt;br /&gt;
        });&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war der Letzte Teil des Toturials natürlich Könnte man noch X-Funktionen einfügen aber den Spaß überlasse ich euch. Auf Anfrage Sende ich Auch gerne Die Sourcecodes Zu, einfach im Forum eine PN an Andy16823&lt;/div&gt;</summary>
		<author><name>Andy16823</name></author>
	</entry>
	<entry>
		<id>https://wiki.byte-welt.net/index.php?title=Datei:Bild22.PNG&amp;diff=5427</id>
		<title>Datei:Bild22.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.byte-welt.net/index.php?title=Datei:Bild22.PNG&amp;diff=5427"/>
		<updated>2013-08-17T18:27:01Z</updated>

		<summary type="html">&lt;p&gt;Andy16823: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Andy16823</name></author>
	</entry>
	<entry>
		<id>https://wiki.byte-welt.net/index.php?title=Ftp-Client_Tutorial&amp;diff=5426</id>
		<title>Ftp-Client Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.byte-welt.net/index.php?title=Ftp-Client_Tutorial&amp;diff=5426"/>
		<updated>2013-08-17T18:21:44Z</updated>

		<summary type="html">&lt;p&gt;Andy16823: /* Java Ftp  Client Tutorial */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Java Ftp  Client Tutorial =&lt;br /&gt;
&lt;br /&gt;
Mache mich mal drann um ein Ftp Tutorial zu Schreiben. In Unserem Toturial Erstellen wir einen Multi-Down/Upload Server. Wir Verwenden für Das Toturial die Mitgelieferte Klasse aus der Neusten Java Version. Für dieses Toturial solltest du die Grundlagen von Java Kennen. Auch Enfehle ich eine IDE zu Benutzen die über einen Designer Verfügt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Importierungen ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
import java.awt.List;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.net.InetAddress;&lt;br /&gt;
import java.net.InetSocketAddress;&lt;br /&gt;
import java.net.SocketAddress;&lt;br /&gt;
import java.net.UnknownHostException;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import javax.swing.DefaultListModel;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JDialog;&lt;br /&gt;
import javax.swing.JFileChooser;&lt;br /&gt;
import javax.swing.JTextField;&lt;br /&gt;
import javax.swing.UIManager;&lt;br /&gt;
import javax.swing.UnsupportedLookAndFeelException;&lt;br /&gt;
import javax.swing.tree.DefaultTreeModel;&lt;br /&gt;
import javax.swing.tree.MutableTreeNode;&lt;br /&gt;
import sun.net.ftp.FtpClient;&lt;br /&gt;
import sun.net.ftp.FtpDirEntry;&lt;br /&gt;
import sun.net.ftp.FtpProtocolException;&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Das Frame ==&lt;br /&gt;
Ich habe bei mir das Frame mit einer IDE Geschrieben die einen Desingner Verwendet, aber erfahrene Java Programmierer Sollten dies&lt;br /&gt;
auch in Wenigen Minuten mit einer IDE die Ohne Designer Arbeitet hinbekommen.&lt;br /&gt;
In dem Bild seht Ihr wie ich das Frame Aufgebaut habe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Feather 150 http://www.freesoft.24.eu/bilder/bild22.PNG|gerahmt|Eine Feder mit Rahmen]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie man Seht befinden sich auf dem Form 3 Listen und ein Menüstrip mit 2 Menüs, 3 textfelder, 1 Passwort Feld und ein Button. Ich habe folgende Listen Modelle den listen zugeordnet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Liste1 (DefaultListModel) mod (diese list zeigt die verzeichnisse an und Verfügt über ein Click ActionEvent&lt;br /&gt;
* Liste2 (DefaultListModel) Fmod (diese liste zeigt die Dateien An, aus dem Aktuellen FTP Verzeichniss.&lt;br /&gt;
* Liste3 (DefaultListModel) Cmod (diese liste dient als Interne Console)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Textfelder Werden folgt Verwendet&lt;br /&gt;
&lt;br /&gt;
* TextFeld1 Hier wird der Server Angegeben&lt;br /&gt;
* Textfeld2 Hier wird der Port Angegeben (Achtung der Port Muss Angegeben werden, bei vielen Servern ist der Standardt Port 21)&lt;br /&gt;
* Textfeld3 Hier Kommt der Benutzername Rein&lt;br /&gt;
* PasswordFeld1 Das Passwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Menü ist Aufgebaut in&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* File&lt;br /&gt;
&lt;br /&gt;
** Verbinden&lt;br /&gt;
** Trenen&lt;br /&gt;
** Daten Uploaden&lt;br /&gt;
** Daten Downloaden&lt;br /&gt;
** Daten Löschen&lt;br /&gt;
** Verzeichniss Löschen&lt;br /&gt;
** Verzeichniss Erstellen&lt;br /&gt;
&lt;br /&gt;
* Edit&lt;br /&gt;
** Übergeordneter Ordner&lt;br /&gt;
&lt;br /&gt;
== Die Codes ==&lt;br /&gt;
&lt;br /&gt;
=== Variabeln in der Klasse ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
//Suchen nach&lt;br /&gt;
public class main extends javax.swing.JFrame {&lt;br /&gt;
//hier diese Einträge Darunter Setzen&lt;br /&gt;
	public DefaultListModel mod;&lt;br /&gt;
	public FtpClient ftp;&lt;br /&gt;
	public FtpDirEntry direlement;&lt;br /&gt;
	public DefaultListModel Fmod;&lt;br /&gt;
	public DefaultListModel Cmod;&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Listen Initialisieren ===&lt;br /&gt;
Ich habe So die Listen Initalisiert&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
public main() {&lt;br /&gt;
initComponents();&lt;br /&gt;
// Hinzufügen&lt;br /&gt;
mod = new DefaultListModel();&lt;br /&gt;
jList1.setModel(mod);&lt;br /&gt;
Fmod = new DefaultListModel();&lt;br /&gt;
jList2.setModel(Fmod);&lt;br /&gt;
Cmod = new DefaultListModel();&lt;br /&gt;
jList3.setModel(Cmod);  &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Verbinden Action Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Elemente aus Modellen Löschen&lt;br /&gt;
        	Fmod.removeAllElements();&lt;br /&gt;
        	mod.removeAllElements();&lt;br /&gt;
        	// deklariren&lt;br /&gt;
        	// Deklarieren des List Models&lt;br /&gt;
        	mod = (DefaultListModel) jList1.getModel();&lt;br /&gt;
        	// holen des Inhaltes aus der Server Text Box&lt;br /&gt;
        	String servUrl=jTextField1.getText();&lt;br /&gt;
        	// holen des Inhaltes aus der Port Text Box&lt;br /&gt;
        	int port=Integer.parseInt(jTextField2.getText());&lt;br /&gt;
        	// Internet Adresse umwandln in IP&lt;br /&gt;
        	String ipAdr = InetAddress.getByName(servUrl).getHostAddress();&lt;br /&gt;
        	// Consolen Anzeige&lt;br /&gt;
        	Cmod.addElement(&amp;quot;Encode Adresse &amp;quot; + servUrl + &amp;quot; in IP Adresse &amp;quot; + ipAdr);&lt;br /&gt;
        	System.out.println(&amp;quot;Endode Addresse in IP: &amp;quot; + ipAdr);   	&lt;br /&gt;
        	// Socket Addresse Deklarieren&lt;br /&gt;
        	SocketAddress sAdr = new InetSocketAddress(ipAdr,port);&lt;br /&gt;
        	// Deklarieren des ftpClients&lt;br /&gt;
        	ftp =  FtpClient.create();&lt;br /&gt;
 &lt;br /&gt;
        	// Benutzername Festelgen&lt;br /&gt;
        	String userName = jTextField3.getText();&lt;br /&gt;
 &lt;br /&gt;
        	//Verbindung Aufbauen&lt;br /&gt;
        	ftp.connect(sAdr);&lt;br /&gt;
        	//Wen Verbindung Besteht, einlogen&lt;br /&gt;
        	if(ftp.isConnected()==true){&lt;br /&gt;
            	// Console giebt aus das wir uns erfolgreich verbunden haben&lt;br /&gt;
            	Cmod.addElement(&amp;quot;Erfolgreich mit Server &amp;quot; + ipAdr + &amp;quot; Verbunden&amp;quot;);&lt;br /&gt;
            	System.out.println(&amp;quot;Erfolgreich mit Server &amp;quot; + ipAdr + &amp;quot; Verbunden&amp;quot;);&lt;br /&gt;
             	// Wir lassen Uns die Begrüßungsnachricht ausgeben&lt;br /&gt;
            	System.out.print(ftp.getWelcomeMsg());&lt;br /&gt;
            	Cmod.addElement(ftp.getWelcomeMsg());&lt;br /&gt;
            	// Hier Loggen wir uns in den Server ein&lt;br /&gt;
            	ftp.login(userName, jPasswordField1.getPassword());&lt;br /&gt;
            	// Wenn wir Eingelogt Sind &lt;br /&gt;
            	if(ftp.isLoggedIn()==true){&lt;br /&gt;
                	// Wir Bekommen eine nachricht vom Server das wir uns Erfolgreich Eingelogt sind&lt;br /&gt;
                	Cmod.addElement(&amp;quot;User &amp;quot; + userName + &amp;quot; Access Garanted&amp;quot;);&lt;br /&gt;
                	System.out.println(&amp;quot;User: &amp;quot; + userName + &amp;quot; ist erfolgreich im Server eingelogt&amp;quot;);&lt;br /&gt;
                	// Nun deklarieren wir unser Aktuelles Verzeichniss&lt;br /&gt;
                	String dir = ftp.getWorkingDirectory();&lt;br /&gt;
                	// Nun lesen wir die Verzeichnisse Aus&lt;br /&gt;
                	Iterator&amp;lt;FtpDirEntry&amp;gt; dirlist = ftp.listFiles(dir);&lt;br /&gt;
                	// Listview Model leeren&lt;br /&gt;
                	mod.removeAllElements();&lt;br /&gt;
                	// hinzufügen der neune Verzeichnisse&lt;br /&gt;
                	while(dirlist.hasNext()){&lt;br /&gt;
                   	// elemnt in die DirEntry hinzufügen&lt;br /&gt;
                   	direlement = dirlist.next();&lt;br /&gt;
                   	// Prüfen ob es ein Verzeichniss ist&lt;br /&gt;
                   	if(direlement.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                       	// in Model Hinzufügen&lt;br /&gt;
                       	mod.addElement(direlement.getName());&lt;br /&gt;
                   	}&lt;br /&gt;
                   	if(direlement.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                       	Fmod.addElement(direlement.getName());&lt;br /&gt;
                   	}&lt;br /&gt;
                	}&lt;br /&gt;
            	}&lt;br /&gt;
        	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
    	} catch (UnknownHostException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	} catch (FtpProtocolException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	} catch (IOException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Trennen Action Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
        try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
            ftp.close();&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das listview ClickAction Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// List Model Deklarieren&lt;br /&gt;
    	mod = (DefaultListModel) jList1.getModel();&lt;br /&gt;
    	// Prüfen ob der Client noch Verbunden ist &lt;br /&gt;
    	if(ftp.isConnected()==true){&lt;br /&gt;
        	//prüfen ob wir noch eingelogt sind&lt;br /&gt;
        	if(ftp.isLoggedIn()==true){&lt;br /&gt;
            	try {&lt;br /&gt;
                	//Verzeichniss Wechselen&lt;br /&gt;
                	ftp.changeDirectory(jList1.getSelectedValue().toString());&lt;br /&gt;
                	// System giebt aus das das Verzeichniss gewechselt wurde&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Verzeichniss Gewechelt nach: &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	System.out.print(&amp;quot;Verzeichniss Gewechselt nach :&amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	// wir Listen die Files in dem Neune Verzeichniss&lt;br /&gt;
                	Iterator&amp;lt;FtpDirEntry&amp;gt; dirs = ftp.listFiles(ftp.getWorkingDirectory());&lt;br /&gt;
                	// wir Löschen die Alten List items&lt;br /&gt;
                	mod.removeAllElements();&lt;br /&gt;
                	Fmod.removeAllElements();&lt;br /&gt;
                	// Wir Tragen die Verzeichniss ein&lt;br /&gt;
                	while(dirs.hasNext()){&lt;br /&gt;
                    	// wir Deklarieren das Element&lt;br /&gt;
                    	direlement=dirs.next();&lt;br /&gt;
                    	// Wir Prüfen ob das Element ein Verzeichniss ist&lt;br /&gt;
                    	if(direlement.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                        	// wir fügen den Verzeichniss namen in die Liste ein&lt;br /&gt;
                        	mod.addElement(direlement.getName());&lt;br /&gt;
                    	}&lt;br /&gt;
                    	else if(direlement.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                        	Fmod.addElement(direlement.getName());&lt;br /&gt;
                    	}&lt;br /&gt;
                	}&lt;br /&gt;
 &lt;br /&gt;
            	} catch (FtpProtocolException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (IOException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	}&lt;br /&gt;
        	}&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== das Multi Download ActionEvent ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Wir Deklarieren den FileChooser&lt;br /&gt;
    	JFileChooser sfd = new JFileChooser();&lt;br /&gt;
    	// Wir schreiben in das Datenfeld Bitte Wählen, da wir nur das Verzeichniss Benötigen&lt;br /&gt;
    	sfd.setSelectedFile(new File(&amp;quot;Bitte Wählen&amp;quot;));&lt;br /&gt;
    	//Wenn Ok Gedrückt Wurde&lt;br /&gt;
    	if(sfd.showSaveDialog(sfd) == JFileChooser.APPROVE_OPTION){&lt;br /&gt;
        	// list erstellen mit Unseren Ausgewählten Daten&lt;br /&gt;
        	Object[] flist = jList2.getSelectedValues();&lt;br /&gt;
        	for(int i = 0; i &amp;lt; flist.length; i++){&lt;br /&gt;
 &lt;br /&gt;
            	try {&lt;br /&gt;
                	// wir geben Aus welche File wir Downloaden möchten&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Get file &amp;quot; + flist[i] + &amp;quot; from Curent Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	System.out.println(&amp;quot;Get file &amp;quot; + flist[i] + &amp;quot; from Curent Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	// neue File Erstellen&lt;br /&gt;
                	File f = new File(sfd.getSelectedFile().getParent() + &amp;quot;/&amp;quot; + flist[i]);&lt;br /&gt;
                	// Output Stream Erstellen&lt;br /&gt;
                	FileOutputStream os = new FileOutputStream(f);&lt;br /&gt;
                	// Datei Herunterladen&lt;br /&gt;
                	ftp.getFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; +flist[i], os);&lt;br /&gt;
                	// Server Antwortet auf unsere Anfrage&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Server: &amp;quot; + ftp.getLastResponseString());&lt;br /&gt;
                	System.out.println(&amp;quot;Server: &amp;quot; + ftp.getLastResponseString());&lt;br /&gt;
            	} catch (FileNotFoundException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (FtpProtocolException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (IOException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        	}&lt;br /&gt;
        	// Ausgeben Das der Download Beendet wurde&lt;br /&gt;
        	Cmod.addElement(&amp;quot;Download Vorgang Beendet&amp;quot;);&lt;br /&gt;
        	System.out.println(&amp;quot;Download Vorgang Beendet&amp;quot;);&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Multi Upload Action Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
//Wir erstellen einen Filechooser zum Wählen der Daten&lt;br /&gt;
        JFileChooser ofd = new JFileChooser();&lt;br /&gt;
        //mehrfach auswahl Aktivieren&lt;br /&gt;
        ofd.setMultiSelectionEnabled(true);&lt;br /&gt;
        // Wenn im Filechooser auf Ok geklickt wird&lt;br /&gt;
        if(ofd.showOpenDialog(ofd)==JFileChooser.APPROVE_OPTION){&lt;br /&gt;
            // Wir Erstellen eine Filelist die unsere Gewählten files Beinhaltet&lt;br /&gt;
            File[] flist = ofd.getSelectedFiles();&lt;br /&gt;
            // Wir laden jede Einzelne File hoch&lt;br /&gt;
            for(int i = 0 ; i&amp;lt;flist.length;i++){&lt;br /&gt;
                try {&lt;br /&gt;
                    // hiier Deklarieren wir die File&lt;br /&gt;
                    File f = flist[i];&lt;br /&gt;
                    // Info für Console&lt;br /&gt;
                    Cmod.addElement(&amp;quot;Put File &amp;quot; + f.getName() + &amp;quot; in to &amp;quot; + ftp.getWorkingDirectory() + &amp;quot; directory&amp;quot;);&lt;br /&gt;
                    System.out.println(&amp;quot;Put File &amp;quot; + f.getName() + &amp;quot; in to &amp;quot; + ftp.getWorkingDirectory() + &amp;quot; directory&amp;quot;);&lt;br /&gt;
                    // Wir erstellen einen Fileinputstream zum Auslesen der Datei&lt;br /&gt;
                    FileInputStream is = new FileInputStream(f);&lt;br /&gt;
                    // Nun wird die Datei ochgeladen&lt;br /&gt;
                    ftp.putFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + f.getName(), is);&lt;br /&gt;
                    // Console giebt server Nachricht aus&lt;br /&gt;
                    Cmod.addElement(&amp;quot;Server: &amp;quot; +ftp.getLastResponseString());&lt;br /&gt;
                    System.out.println(&amp;quot;Server: &amp;quot; +ftp.getLastResponseString());&lt;br /&gt;
                } catch (FileNotFoundException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                } catch (FtpProtocolException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                } catch (IOException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                }&lt;br /&gt;
 &lt;br /&gt;
            }&lt;br /&gt;
            // Console giebt aus das Übertragung beendet Wurde&lt;br /&gt;
            Cmod.addElement(&amp;quot;Übertragung der Files &amp;quot; + flist.toString() + &amp;quot; Beendet&amp;quot;);&lt;br /&gt;
            System.out.println(&amp;quot;Übertragung der Files &amp;quot; + flist.toString() + &amp;quot; Beendet&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Übergerordneter Ordner Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Elemente Entfernen&lt;br /&gt;
            mod.removeAllElements();&lt;br /&gt;
            Fmod.removeAllElements();&lt;br /&gt;
 &lt;br /&gt;
            // FtpDirEntry Deklarieren&lt;br /&gt;
            FtpDirEntry dir;         &lt;br /&gt;
            // Verzeichniss Wechseln&lt;br /&gt;
            ftp.changeToParentDirectory();       &lt;br /&gt;
            // Neues Verzeichniss in Console Ausgeben&lt;br /&gt;
            Cmod.addElement(&amp;quot;Aktuelles Verzeichniss &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
            // Verzeichnisse in eine FtpDirEntry List hinzufügen&lt;br /&gt;
            Iterator&amp;lt;FtpDirEntry&amp;gt; dirlist = ftp.listFiles(ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
            // Jedes Verzeichniss Ausgeben&lt;br /&gt;
            while(dirlist.hasNext()){&lt;br /&gt;
                // dir elemnt Deklarieren&lt;br /&gt;
                dir=dirlist.next();&lt;br /&gt;
 &lt;br /&gt;
                // ist dir ein Ordner ?&lt;br /&gt;
                if(dir.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                    // wenn ja dan in List 1&lt;br /&gt;
                    mod.addElement(dir.getName());&lt;br /&gt;
                }&lt;br /&gt;
                // Ist dir eine Datei ?&lt;br /&gt;
                if(dir.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                    // wenn ja dan in List 2&lt;br /&gt;
                    Fmod.addElement(dir.getName());&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Datei Löschen Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
 &lt;br /&gt;
            // Wir Schreiben in die Console das Wir die Datei Löschen&lt;br /&gt;
            Cmod.addElement(&amp;quot;Delete File &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
            System.out.println(&amp;quot;Delete File &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
 &lt;br /&gt;
            // Wir Löschen die Datei&lt;br /&gt;
            ftp.deleteFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
 &lt;br /&gt;
            // Wir Geben die Server Antwort aus&lt;br /&gt;
            Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
            System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Verzeichniss Löschen Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
                // Wir Schreiben in die Console das Wir das Verzeichniss Löschen&lt;br /&gt;
                Cmod.addElement(&amp;quot;Delete Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                System.out.println(&amp;quot;Delete Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Löschen Das Verzeichniss&lt;br /&gt;
                ftp.removeDirectory(ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Geben die Server Antwort aus&lt;br /&gt;
                Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
                System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Verzeichniss Erstellen Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Deklarieren der Elemente&lt;br /&gt;
        JDialog dia = new JDialog();&lt;br /&gt;
        dia.setSize(375, 110);&lt;br /&gt;
        dia.setLayout(null);&lt;br /&gt;
        dia.setTitle(&amp;quot;Neues Verzeichniss anlegen&amp;quot;);&lt;br /&gt;
        JButton b = new JButton(&amp;quot;Erstellen&amp;quot;);&lt;br /&gt;
        final JTextField textfield = new JTextField();&lt;br /&gt;
 &lt;br /&gt;
        // Platzieren der Elemente&lt;br /&gt;
        textfield.setLocation(25, 25);&lt;br /&gt;
        textfield.setSize(200, 20);&lt;br /&gt;
        b.setLocation(235, 25);&lt;br /&gt;
        b.setSize(100,20);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        // Füge Controls Hinzu&lt;br /&gt;
        dia.add(textfield);&lt;br /&gt;
        dia.add(b);&lt;br /&gt;
        dia.setVisible(true);&lt;br /&gt;
 &lt;br /&gt;
        // Action Listner auf Button Legen&lt;br /&gt;
        b.addActionListener(new ActionListener(){&lt;br /&gt;
        public void actionPerformed(ActionEvent e){&lt;br /&gt;
            try {&lt;br /&gt;
 &lt;br /&gt;
                // Console Giebt aus das wir ein Verzeichniss Erstellen&lt;br /&gt;
                Cmod.addElement(&amp;quot;Create Dir &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
                System.out.println(&amp;quot;Create Dir &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Erstellen das Verzeichniss&lt;br /&gt;
                ftp.makeDirectory(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Geben die System Nachricht aus &lt;br /&gt;
                Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
                System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
            } catch (FtpProtocolException ex) {&lt;br /&gt;
                Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            } catch (IOException ex) {&lt;br /&gt;
                Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
        }&lt;br /&gt;
        });&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war der Letzte Teil des Toturials natürlich Könnte man noch X-Funktionen einfügen aber den Spaß überlasse ich euch. Auf Anfrage Sende ich Auch gerne Die Sourcecodes Zu, einfach im Forum eine PN an Andy16823&lt;/div&gt;</summary>
		<author><name>Andy16823</name></author>
	</entry>
	<entry>
		<id>https://wiki.byte-welt.net/index.php?title=Ftp-Client_Tutorial&amp;diff=5425</id>
		<title>Ftp-Client Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.byte-welt.net/index.php?title=Ftp-Client_Tutorial&amp;diff=5425"/>
		<updated>2013-08-17T18:18:25Z</updated>

		<summary type="html">&lt;p&gt;Andy16823: /* Das Frame */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Java Ftp  Client Tutorial =&lt;br /&gt;
&lt;br /&gt;
Mache mich mal drann um ein Ftp Tutorial zu Schreiben. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Importierungen ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
import java.awt.List;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.net.InetAddress;&lt;br /&gt;
import java.net.InetSocketAddress;&lt;br /&gt;
import java.net.SocketAddress;&lt;br /&gt;
import java.net.UnknownHostException;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import javax.swing.DefaultListModel;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JDialog;&lt;br /&gt;
import javax.swing.JFileChooser;&lt;br /&gt;
import javax.swing.JTextField;&lt;br /&gt;
import javax.swing.UIManager;&lt;br /&gt;
import javax.swing.UnsupportedLookAndFeelException;&lt;br /&gt;
import javax.swing.tree.DefaultTreeModel;&lt;br /&gt;
import javax.swing.tree.MutableTreeNode;&lt;br /&gt;
import sun.net.ftp.FtpClient;&lt;br /&gt;
import sun.net.ftp.FtpDirEntry;&lt;br /&gt;
import sun.net.ftp.FtpProtocolException;&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Das Frame ==&lt;br /&gt;
Ich habe bei mir das Frame mit einer IDE Geschrieben die einen Desingner Verwendet, aber erfahrene Java Programmierer Sollten dies&lt;br /&gt;
auch in Wenigen Minuten mit einer IDE die Ohne Designer Arbeitet hinbekommen.&lt;br /&gt;
In dem Bild seht Ihr wie ich das Frame Aufgebaut habe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Feather 150 http://www.freesoft.24.eu/bilder/bild22.PNG|gerahmt|Eine Feder mit Rahmen]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie man Seht befinden sich auf dem Form 3 Listen und ein Menüstrip mit 2 Menüs, 3 textfelder, 1 Passwort Feld und ein Button. Ich habe folgende Listen Modelle den listen zugeordnet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Liste1 (DefaultListModel) mod (diese list zeigt die verzeichnisse an und Verfügt über ein Click ActionEvent&lt;br /&gt;
* Liste2 (DefaultListModel) Fmod (diese liste zeigt die Dateien An, aus dem Aktuellen FTP Verzeichniss.&lt;br /&gt;
* Liste3 (DefaultListModel) Cmod (diese liste dient als Interne Console)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Textfelder Werden folgt Verwendet&lt;br /&gt;
&lt;br /&gt;
* TextFeld1 Hier wird der Server Angegeben&lt;br /&gt;
* Textfeld2 Hier wird der Port Angegeben (Achtung der Port Muss Angegeben werden, bei vielen Servern ist der Standardt Port 21)&lt;br /&gt;
* Textfeld3 Hier Kommt der Benutzername Rein&lt;br /&gt;
* PasswordFeld1 Das Passwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Menü ist Aufgebaut in&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* File&lt;br /&gt;
&lt;br /&gt;
** Verbinden&lt;br /&gt;
** Trenen&lt;br /&gt;
** Daten Uploaden&lt;br /&gt;
** Daten Downloaden&lt;br /&gt;
** Daten Löschen&lt;br /&gt;
** Verzeichniss Löschen&lt;br /&gt;
** Verzeichniss Erstellen&lt;br /&gt;
&lt;br /&gt;
* Edit&lt;br /&gt;
** Übergeordneter Ordner&lt;br /&gt;
&lt;br /&gt;
== Die Codes ==&lt;br /&gt;
&lt;br /&gt;
=== Variabeln in der Klasse ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
//Suchen nach&lt;br /&gt;
public class main extends javax.swing.JFrame {&lt;br /&gt;
//hier diese Einträge Darunter Setzen&lt;br /&gt;
	public DefaultListModel mod;&lt;br /&gt;
	public FtpClient ftp;&lt;br /&gt;
	public FtpDirEntry direlement;&lt;br /&gt;
	public DefaultListModel Fmod;&lt;br /&gt;
	public DefaultListModel Cmod;&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Listen Initialisieren ===&lt;br /&gt;
Ich habe So die Listen Initalisiert&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
public main() {&lt;br /&gt;
initComponents();&lt;br /&gt;
// Hinzufügen&lt;br /&gt;
mod = new DefaultListModel();&lt;br /&gt;
jList1.setModel(mod);&lt;br /&gt;
Fmod = new DefaultListModel();&lt;br /&gt;
jList2.setModel(Fmod);&lt;br /&gt;
Cmod = new DefaultListModel();&lt;br /&gt;
jList3.setModel(Cmod);  &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Verbinden Action Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Elemente aus Modellen Löschen&lt;br /&gt;
        	Fmod.removeAllElements();&lt;br /&gt;
        	mod.removeAllElements();&lt;br /&gt;
        	// deklariren&lt;br /&gt;
        	// Deklarieren des List Models&lt;br /&gt;
        	mod = (DefaultListModel) jList1.getModel();&lt;br /&gt;
        	// holen des Inhaltes aus der Server Text Box&lt;br /&gt;
        	String servUrl=jTextField1.getText();&lt;br /&gt;
        	// holen des Inhaltes aus der Port Text Box&lt;br /&gt;
        	int port=Integer.parseInt(jTextField2.getText());&lt;br /&gt;
        	// Internet Adresse umwandln in IP&lt;br /&gt;
        	String ipAdr = InetAddress.getByName(servUrl).getHostAddress();&lt;br /&gt;
        	// Consolen Anzeige&lt;br /&gt;
        	Cmod.addElement(&amp;quot;Encode Adresse &amp;quot; + servUrl + &amp;quot; in IP Adresse &amp;quot; + ipAdr);&lt;br /&gt;
        	System.out.println(&amp;quot;Endode Addresse in IP: &amp;quot; + ipAdr);   	&lt;br /&gt;
        	// Socket Addresse Deklarieren&lt;br /&gt;
        	SocketAddress sAdr = new InetSocketAddress(ipAdr,port);&lt;br /&gt;
        	// Deklarieren des ftpClients&lt;br /&gt;
        	ftp =  FtpClient.create();&lt;br /&gt;
 &lt;br /&gt;
        	// Benutzername Festelgen&lt;br /&gt;
        	String userName = jTextField3.getText();&lt;br /&gt;
 &lt;br /&gt;
        	//Verbindung Aufbauen&lt;br /&gt;
        	ftp.connect(sAdr);&lt;br /&gt;
        	//Wen Verbindung Besteht, einlogen&lt;br /&gt;
        	if(ftp.isConnected()==true){&lt;br /&gt;
            	// Console giebt aus das wir uns erfolgreich verbunden haben&lt;br /&gt;
            	Cmod.addElement(&amp;quot;Erfolgreich mit Server &amp;quot; + ipAdr + &amp;quot; Verbunden&amp;quot;);&lt;br /&gt;
            	System.out.println(&amp;quot;Erfolgreich mit Server &amp;quot; + ipAdr + &amp;quot; Verbunden&amp;quot;);&lt;br /&gt;
             	// Wir lassen Uns die Begrüßungsnachricht ausgeben&lt;br /&gt;
            	System.out.print(ftp.getWelcomeMsg());&lt;br /&gt;
            	Cmod.addElement(ftp.getWelcomeMsg());&lt;br /&gt;
            	// Hier Loggen wir uns in den Server ein&lt;br /&gt;
            	ftp.login(userName, jPasswordField1.getPassword());&lt;br /&gt;
            	// Wenn wir Eingelogt Sind &lt;br /&gt;
            	if(ftp.isLoggedIn()==true){&lt;br /&gt;
                	// Wir Bekommen eine nachricht vom Server das wir uns Erfolgreich Eingelogt sind&lt;br /&gt;
                	Cmod.addElement(&amp;quot;User &amp;quot; + userName + &amp;quot; Access Garanted&amp;quot;);&lt;br /&gt;
                	System.out.println(&amp;quot;User: &amp;quot; + userName + &amp;quot; ist erfolgreich im Server eingelogt&amp;quot;);&lt;br /&gt;
                	// Nun deklarieren wir unser Aktuelles Verzeichniss&lt;br /&gt;
                	String dir = ftp.getWorkingDirectory();&lt;br /&gt;
                	// Nun lesen wir die Verzeichnisse Aus&lt;br /&gt;
                	Iterator&amp;lt;FtpDirEntry&amp;gt; dirlist = ftp.listFiles(dir);&lt;br /&gt;
                	// Listview Model leeren&lt;br /&gt;
                	mod.removeAllElements();&lt;br /&gt;
                	// hinzufügen der neune Verzeichnisse&lt;br /&gt;
                	while(dirlist.hasNext()){&lt;br /&gt;
                   	// elemnt in die DirEntry hinzufügen&lt;br /&gt;
                   	direlement = dirlist.next();&lt;br /&gt;
                   	// Prüfen ob es ein Verzeichniss ist&lt;br /&gt;
                   	if(direlement.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                       	// in Model Hinzufügen&lt;br /&gt;
                       	mod.addElement(direlement.getName());&lt;br /&gt;
                   	}&lt;br /&gt;
                   	if(direlement.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                       	Fmod.addElement(direlement.getName());&lt;br /&gt;
                   	}&lt;br /&gt;
                	}&lt;br /&gt;
            	}&lt;br /&gt;
        	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
    	} catch (UnknownHostException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	} catch (FtpProtocolException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	} catch (IOException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Trennen Action Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
        try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
            ftp.close();&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das listview ClickAction Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// List Model Deklarieren&lt;br /&gt;
    	mod = (DefaultListModel) jList1.getModel();&lt;br /&gt;
    	// Prüfen ob der Client noch Verbunden ist &lt;br /&gt;
    	if(ftp.isConnected()==true){&lt;br /&gt;
        	//prüfen ob wir noch eingelogt sind&lt;br /&gt;
        	if(ftp.isLoggedIn()==true){&lt;br /&gt;
            	try {&lt;br /&gt;
                	//Verzeichniss Wechselen&lt;br /&gt;
                	ftp.changeDirectory(jList1.getSelectedValue().toString());&lt;br /&gt;
                	// System giebt aus das das Verzeichniss gewechselt wurde&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Verzeichniss Gewechelt nach: &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	System.out.print(&amp;quot;Verzeichniss Gewechselt nach :&amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	// wir Listen die Files in dem Neune Verzeichniss&lt;br /&gt;
                	Iterator&amp;lt;FtpDirEntry&amp;gt; dirs = ftp.listFiles(ftp.getWorkingDirectory());&lt;br /&gt;
                	// wir Löschen die Alten List items&lt;br /&gt;
                	mod.removeAllElements();&lt;br /&gt;
                	Fmod.removeAllElements();&lt;br /&gt;
                	// Wir Tragen die Verzeichniss ein&lt;br /&gt;
                	while(dirs.hasNext()){&lt;br /&gt;
                    	// wir Deklarieren das Element&lt;br /&gt;
                    	direlement=dirs.next();&lt;br /&gt;
                    	// Wir Prüfen ob das Element ein Verzeichniss ist&lt;br /&gt;
                    	if(direlement.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                        	// wir fügen den Verzeichniss namen in die Liste ein&lt;br /&gt;
                        	mod.addElement(direlement.getName());&lt;br /&gt;
                    	}&lt;br /&gt;
                    	else if(direlement.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                        	Fmod.addElement(direlement.getName());&lt;br /&gt;
                    	}&lt;br /&gt;
                	}&lt;br /&gt;
 &lt;br /&gt;
            	} catch (FtpProtocolException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (IOException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	}&lt;br /&gt;
        	}&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== das Multi Download ActionEvent ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Wir Deklarieren den FileChooser&lt;br /&gt;
    	JFileChooser sfd = new JFileChooser();&lt;br /&gt;
    	// Wir schreiben in das Datenfeld Bitte Wählen, da wir nur das Verzeichniss Benötigen&lt;br /&gt;
    	sfd.setSelectedFile(new File(&amp;quot;Bitte Wählen&amp;quot;));&lt;br /&gt;
    	//Wenn Ok Gedrückt Wurde&lt;br /&gt;
    	if(sfd.showSaveDialog(sfd) == JFileChooser.APPROVE_OPTION){&lt;br /&gt;
        	// list erstellen mit Unseren Ausgewählten Daten&lt;br /&gt;
        	Object[] flist = jList2.getSelectedValues();&lt;br /&gt;
        	for(int i = 0; i &amp;lt; flist.length; i++){&lt;br /&gt;
 &lt;br /&gt;
            	try {&lt;br /&gt;
                	// wir geben Aus welche File wir Downloaden möchten&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Get file &amp;quot; + flist[i] + &amp;quot; from Curent Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	System.out.println(&amp;quot;Get file &amp;quot; + flist[i] + &amp;quot; from Curent Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	// neue File Erstellen&lt;br /&gt;
                	File f = new File(sfd.getSelectedFile().getParent() + &amp;quot;/&amp;quot; + flist[i]);&lt;br /&gt;
                	// Output Stream Erstellen&lt;br /&gt;
                	FileOutputStream os = new FileOutputStream(f);&lt;br /&gt;
                	// Datei Herunterladen&lt;br /&gt;
                	ftp.getFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; +flist[i], os);&lt;br /&gt;
                	// Server Antwortet auf unsere Anfrage&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Server: &amp;quot; + ftp.getLastResponseString());&lt;br /&gt;
                	System.out.println(&amp;quot;Server: &amp;quot; + ftp.getLastResponseString());&lt;br /&gt;
            	} catch (FileNotFoundException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (FtpProtocolException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (IOException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        	}&lt;br /&gt;
        	// Ausgeben Das der Download Beendet wurde&lt;br /&gt;
        	Cmod.addElement(&amp;quot;Download Vorgang Beendet&amp;quot;);&lt;br /&gt;
        	System.out.println(&amp;quot;Download Vorgang Beendet&amp;quot;);&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Multi Upload Action Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
//Wir erstellen einen Filechooser zum Wählen der Daten&lt;br /&gt;
        JFileChooser ofd = new JFileChooser();&lt;br /&gt;
        //mehrfach auswahl Aktivieren&lt;br /&gt;
        ofd.setMultiSelectionEnabled(true);&lt;br /&gt;
        // Wenn im Filechooser auf Ok geklickt wird&lt;br /&gt;
        if(ofd.showOpenDialog(ofd)==JFileChooser.APPROVE_OPTION){&lt;br /&gt;
            // Wir Erstellen eine Filelist die unsere Gewählten files Beinhaltet&lt;br /&gt;
            File[] flist = ofd.getSelectedFiles();&lt;br /&gt;
            // Wir laden jede Einzelne File hoch&lt;br /&gt;
            for(int i = 0 ; i&amp;lt;flist.length;i++){&lt;br /&gt;
                try {&lt;br /&gt;
                    // hiier Deklarieren wir die File&lt;br /&gt;
                    File f = flist[i];&lt;br /&gt;
                    // Info für Console&lt;br /&gt;
                    Cmod.addElement(&amp;quot;Put File &amp;quot; + f.getName() + &amp;quot; in to &amp;quot; + ftp.getWorkingDirectory() + &amp;quot; directory&amp;quot;);&lt;br /&gt;
                    System.out.println(&amp;quot;Put File &amp;quot; + f.getName() + &amp;quot; in to &amp;quot; + ftp.getWorkingDirectory() + &amp;quot; directory&amp;quot;);&lt;br /&gt;
                    // Wir erstellen einen Fileinputstream zum Auslesen der Datei&lt;br /&gt;
                    FileInputStream is = new FileInputStream(f);&lt;br /&gt;
                    // Nun wird die Datei ochgeladen&lt;br /&gt;
                    ftp.putFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + f.getName(), is);&lt;br /&gt;
                    // Console giebt server Nachricht aus&lt;br /&gt;
                    Cmod.addElement(&amp;quot;Server: &amp;quot; +ftp.getLastResponseString());&lt;br /&gt;
                    System.out.println(&amp;quot;Server: &amp;quot; +ftp.getLastResponseString());&lt;br /&gt;
                } catch (FileNotFoundException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                } catch (FtpProtocolException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                } catch (IOException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                }&lt;br /&gt;
 &lt;br /&gt;
            }&lt;br /&gt;
            // Console giebt aus das Übertragung beendet Wurde&lt;br /&gt;
            Cmod.addElement(&amp;quot;Übertragung der Files &amp;quot; + flist.toString() + &amp;quot; Beendet&amp;quot;);&lt;br /&gt;
            System.out.println(&amp;quot;Übertragung der Files &amp;quot; + flist.toString() + &amp;quot; Beendet&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Übergerordneter Ordner Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Elemente Entfernen&lt;br /&gt;
            mod.removeAllElements();&lt;br /&gt;
            Fmod.removeAllElements();&lt;br /&gt;
 &lt;br /&gt;
            // FtpDirEntry Deklarieren&lt;br /&gt;
            FtpDirEntry dir;         &lt;br /&gt;
            // Verzeichniss Wechseln&lt;br /&gt;
            ftp.changeToParentDirectory();       &lt;br /&gt;
            // Neues Verzeichniss in Console Ausgeben&lt;br /&gt;
            Cmod.addElement(&amp;quot;Aktuelles Verzeichniss &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
            // Verzeichnisse in eine FtpDirEntry List hinzufügen&lt;br /&gt;
            Iterator&amp;lt;FtpDirEntry&amp;gt; dirlist = ftp.listFiles(ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
            // Jedes Verzeichniss Ausgeben&lt;br /&gt;
            while(dirlist.hasNext()){&lt;br /&gt;
                // dir elemnt Deklarieren&lt;br /&gt;
                dir=dirlist.next();&lt;br /&gt;
 &lt;br /&gt;
                // ist dir ein Ordner ?&lt;br /&gt;
                if(dir.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                    // wenn ja dan in List 1&lt;br /&gt;
                    mod.addElement(dir.getName());&lt;br /&gt;
                }&lt;br /&gt;
                // Ist dir eine Datei ?&lt;br /&gt;
                if(dir.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                    // wenn ja dan in List 2&lt;br /&gt;
                    Fmod.addElement(dir.getName());&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Datei Löschen Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
 &lt;br /&gt;
            // Wir Schreiben in die Console das Wir die Datei Löschen&lt;br /&gt;
            Cmod.addElement(&amp;quot;Delete File &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
            System.out.println(&amp;quot;Delete File &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
 &lt;br /&gt;
            // Wir Löschen die Datei&lt;br /&gt;
            ftp.deleteFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
 &lt;br /&gt;
            // Wir Geben die Server Antwort aus&lt;br /&gt;
            Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
            System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Verzeichniss Löschen Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
                // Wir Schreiben in die Console das Wir das Verzeichniss Löschen&lt;br /&gt;
                Cmod.addElement(&amp;quot;Delete Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                System.out.println(&amp;quot;Delete Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Löschen Das Verzeichniss&lt;br /&gt;
                ftp.removeDirectory(ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Geben die Server Antwort aus&lt;br /&gt;
                Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
                System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Verzeichniss Erstellen Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Deklarieren der Elemente&lt;br /&gt;
        JDialog dia = new JDialog();&lt;br /&gt;
        dia.setSize(375, 110);&lt;br /&gt;
        dia.setLayout(null);&lt;br /&gt;
        dia.setTitle(&amp;quot;Neues Verzeichniss anlegen&amp;quot;);&lt;br /&gt;
        JButton b = new JButton(&amp;quot;Erstellen&amp;quot;);&lt;br /&gt;
        final JTextField textfield = new JTextField();&lt;br /&gt;
 &lt;br /&gt;
        // Platzieren der Elemente&lt;br /&gt;
        textfield.setLocation(25, 25);&lt;br /&gt;
        textfield.setSize(200, 20);&lt;br /&gt;
        b.setLocation(235, 25);&lt;br /&gt;
        b.setSize(100,20);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        // Füge Controls Hinzu&lt;br /&gt;
        dia.add(textfield);&lt;br /&gt;
        dia.add(b);&lt;br /&gt;
        dia.setVisible(true);&lt;br /&gt;
 &lt;br /&gt;
        // Action Listner auf Button Legen&lt;br /&gt;
        b.addActionListener(new ActionListener(){&lt;br /&gt;
        public void actionPerformed(ActionEvent e){&lt;br /&gt;
            try {&lt;br /&gt;
 &lt;br /&gt;
                // Console Giebt aus das wir ein Verzeichniss Erstellen&lt;br /&gt;
                Cmod.addElement(&amp;quot;Create Dir &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
                System.out.println(&amp;quot;Create Dir &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Erstellen das Verzeichniss&lt;br /&gt;
                ftp.makeDirectory(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Geben die System Nachricht aus &lt;br /&gt;
                Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
                System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
            } catch (FtpProtocolException ex) {&lt;br /&gt;
                Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            } catch (IOException ex) {&lt;br /&gt;
                Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
        }&lt;br /&gt;
        });&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war der Letzte Teil des Toturials natürlich Könnte man noch X-Funktionen einfügen aber den Spaß überlasse ich euch. Auf Anfrage Sende ich Auch gerne Die Sourcecodes Zu, einfach im Forum eine PN an Andy16823&lt;/div&gt;</summary>
		<author><name>Andy16823</name></author>
	</entry>
	<entry>
		<id>https://wiki.byte-welt.net/index.php?title=Ftp-Client_Tutorial&amp;diff=5424</id>
		<title>Ftp-Client Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.byte-welt.net/index.php?title=Ftp-Client_Tutorial&amp;diff=5424"/>
		<updated>2013-08-17T18:16:44Z</updated>

		<summary type="html">&lt;p&gt;Andy16823: Die Seite wurde neu angelegt: „= Java Ftp  Client Tutorial =  Mache mich mal drann um ein Ftp Tutorial zu Schreiben.    == Importierungen ==  &amp;lt;code=java&amp;gt; import java.awt.List; import java.awt.e…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Java Ftp  Client Tutorial =&lt;br /&gt;
&lt;br /&gt;
Mache mich mal drann um ein Ftp Tutorial zu Schreiben. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Importierungen ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
import java.awt.List;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.io.File;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.FileNotFoundException;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.net.InetAddress;&lt;br /&gt;
import java.net.InetSocketAddress;&lt;br /&gt;
import java.net.SocketAddress;&lt;br /&gt;
import java.net.UnknownHostException;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.logging.Level;&lt;br /&gt;
import java.util.logging.Logger;&lt;br /&gt;
import javax.swing.DefaultListModel;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JDialog;&lt;br /&gt;
import javax.swing.JFileChooser;&lt;br /&gt;
import javax.swing.JTextField;&lt;br /&gt;
import javax.swing.UIManager;&lt;br /&gt;
import javax.swing.UnsupportedLookAndFeelException;&lt;br /&gt;
import javax.swing.tree.DefaultTreeModel;&lt;br /&gt;
import javax.swing.tree.MutableTreeNode;&lt;br /&gt;
import sun.net.ftp.FtpClient;&lt;br /&gt;
import sun.net.ftp.FtpDirEntry;&lt;br /&gt;
import sun.net.ftp.FtpProtocolException;&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Das Frame ==&lt;br /&gt;
Ich habe bei mir das Frame mit einer IDE Geschrieben die einen Desingner Verwendet, aber erfahrene Java Programmierer Sollten dies&lt;br /&gt;
auch in Wenigen Minuten mit einer IDE die Ohne Designer Arbeitet hinbekommen.&lt;br /&gt;
In dem Bild seht Ihr wie ich das Frame Aufgebaut habe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Feather 150 http://www.freesoft.24.eu/bilder/bild22.PNG|gerahmt|Eine Feder mit Rahmen]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;img src=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie man Seht befinden sich auf dem Form 3 Listen und ein Menüstrip mit 2 Menüs, 3 textfelder, 1 Passwort Feld und ein Button. Ich habe folgende Listen Modelle den listen zugeordnet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Liste1 (DefaultListModel) mod (diese list zeigt die verzeichnisse an und Verfügt über ein Click ActionEvent&lt;br /&gt;
* Liste2 (DefaultListModel) Fmod (diese liste zeigt die Dateien An, aus dem Aktuellen FTP Verzeichniss.&lt;br /&gt;
* Liste3 (DefaultListModel) Cmod (diese liste dient als Interne Console)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Textfelder Werden folgt Verwendet&lt;br /&gt;
&lt;br /&gt;
* TextFeld1 Hier wird der Server Angegeben&lt;br /&gt;
* Textfeld2 Hier wird der Port Angegeben (Achtung der Port Muss Angegeben werden, bei vielen Servern ist der Standardt Port 21)&lt;br /&gt;
* Textfeld3 Hier Kommt der Benutzername Rein&lt;br /&gt;
* PasswordFeld1 Das Passwort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Menü ist Aufgebaut in&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* File&lt;br /&gt;
&lt;br /&gt;
** Verbinden&lt;br /&gt;
** Trenen&lt;br /&gt;
** Daten Uploaden&lt;br /&gt;
** Daten Downloaden&lt;br /&gt;
** Daten Löschen&lt;br /&gt;
** Verzeichniss Löschen&lt;br /&gt;
** Verzeichniss Erstellen&lt;br /&gt;
&lt;br /&gt;
* Edit&lt;br /&gt;
** Übergeordneter Ordner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Die Codes ==&lt;br /&gt;
&lt;br /&gt;
=== Variabeln in der Klasse ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
//Suchen nach&lt;br /&gt;
public class main extends javax.swing.JFrame {&lt;br /&gt;
//hier diese Einträge Darunter Setzen&lt;br /&gt;
	public DefaultListModel mod;&lt;br /&gt;
	public FtpClient ftp;&lt;br /&gt;
	public FtpDirEntry direlement;&lt;br /&gt;
	public DefaultListModel Fmod;&lt;br /&gt;
	public DefaultListModel Cmod;&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Listen Initialisieren ===&lt;br /&gt;
Ich habe So die Listen Initalisiert&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
public main() {&lt;br /&gt;
initComponents();&lt;br /&gt;
// Hinzufügen&lt;br /&gt;
mod = new DefaultListModel();&lt;br /&gt;
jList1.setModel(mod);&lt;br /&gt;
Fmod = new DefaultListModel();&lt;br /&gt;
jList2.setModel(Fmod);&lt;br /&gt;
Cmod = new DefaultListModel();&lt;br /&gt;
jList3.setModel(Cmod);  &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Verbinden Action Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Elemente aus Modellen Löschen&lt;br /&gt;
        	Fmod.removeAllElements();&lt;br /&gt;
        	mod.removeAllElements();&lt;br /&gt;
        	// deklariren&lt;br /&gt;
        	// Deklarieren des List Models&lt;br /&gt;
        	mod = (DefaultListModel) jList1.getModel();&lt;br /&gt;
        	// holen des Inhaltes aus der Server Text Box&lt;br /&gt;
        	String servUrl=jTextField1.getText();&lt;br /&gt;
        	// holen des Inhaltes aus der Port Text Box&lt;br /&gt;
        	int port=Integer.parseInt(jTextField2.getText());&lt;br /&gt;
        	// Internet Adresse umwandln in IP&lt;br /&gt;
        	String ipAdr = InetAddress.getByName(servUrl).getHostAddress();&lt;br /&gt;
        	// Consolen Anzeige&lt;br /&gt;
        	Cmod.addElement(&amp;quot;Encode Adresse &amp;quot; + servUrl + &amp;quot; in IP Adresse &amp;quot; + ipAdr);&lt;br /&gt;
        	System.out.println(&amp;quot;Endode Addresse in IP: &amp;quot; + ipAdr);   	&lt;br /&gt;
        	// Socket Addresse Deklarieren&lt;br /&gt;
        	SocketAddress sAdr = new InetSocketAddress(ipAdr,port);&lt;br /&gt;
        	// Deklarieren des ftpClients&lt;br /&gt;
        	ftp =  FtpClient.create();&lt;br /&gt;
 &lt;br /&gt;
        	// Benutzername Festelgen&lt;br /&gt;
        	String userName = jTextField3.getText();&lt;br /&gt;
 &lt;br /&gt;
        	//Verbindung Aufbauen&lt;br /&gt;
        	ftp.connect(sAdr);&lt;br /&gt;
        	//Wen Verbindung Besteht, einlogen&lt;br /&gt;
        	if(ftp.isConnected()==true){&lt;br /&gt;
            	// Console giebt aus das wir uns erfolgreich verbunden haben&lt;br /&gt;
            	Cmod.addElement(&amp;quot;Erfolgreich mit Server &amp;quot; + ipAdr + &amp;quot; Verbunden&amp;quot;);&lt;br /&gt;
            	System.out.println(&amp;quot;Erfolgreich mit Server &amp;quot; + ipAdr + &amp;quot; Verbunden&amp;quot;);&lt;br /&gt;
             	// Wir lassen Uns die Begrüßungsnachricht ausgeben&lt;br /&gt;
            	System.out.print(ftp.getWelcomeMsg());&lt;br /&gt;
            	Cmod.addElement(ftp.getWelcomeMsg());&lt;br /&gt;
            	// Hier Loggen wir uns in den Server ein&lt;br /&gt;
            	ftp.login(userName, jPasswordField1.getPassword());&lt;br /&gt;
            	// Wenn wir Eingelogt Sind &lt;br /&gt;
            	if(ftp.isLoggedIn()==true){&lt;br /&gt;
                	// Wir Bekommen eine nachricht vom Server das wir uns Erfolgreich Eingelogt sind&lt;br /&gt;
                	Cmod.addElement(&amp;quot;User &amp;quot; + userName + &amp;quot; Access Garanted&amp;quot;);&lt;br /&gt;
                	System.out.println(&amp;quot;User: &amp;quot; + userName + &amp;quot; ist erfolgreich im Server eingelogt&amp;quot;);&lt;br /&gt;
                	// Nun deklarieren wir unser Aktuelles Verzeichniss&lt;br /&gt;
                	String dir = ftp.getWorkingDirectory();&lt;br /&gt;
                	// Nun lesen wir die Verzeichnisse Aus&lt;br /&gt;
                	Iterator&amp;lt;FtpDirEntry&amp;gt; dirlist = ftp.listFiles(dir);&lt;br /&gt;
                	// Listview Model leeren&lt;br /&gt;
                	mod.removeAllElements();&lt;br /&gt;
                	// hinzufügen der neune Verzeichnisse&lt;br /&gt;
                	while(dirlist.hasNext()){&lt;br /&gt;
                   	// elemnt in die DirEntry hinzufügen&lt;br /&gt;
                   	direlement = dirlist.next();&lt;br /&gt;
                   	// Prüfen ob es ein Verzeichniss ist&lt;br /&gt;
                   	if(direlement.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                       	// in Model Hinzufügen&lt;br /&gt;
                       	mod.addElement(direlement.getName());&lt;br /&gt;
                   	}&lt;br /&gt;
                   	if(direlement.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                       	Fmod.addElement(direlement.getName());&lt;br /&gt;
                   	}&lt;br /&gt;
                	}&lt;br /&gt;
            	}&lt;br /&gt;
        	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
    	} catch (UnknownHostException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	} catch (FtpProtocolException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	} catch (IOException ex) {&lt;br /&gt;
        	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Trennen Action Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
        try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
            ftp.close();&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das listview ClickAction Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// List Model Deklarieren&lt;br /&gt;
    	mod = (DefaultListModel) jList1.getModel();&lt;br /&gt;
    	// Prüfen ob der Client noch Verbunden ist &lt;br /&gt;
    	if(ftp.isConnected()==true){&lt;br /&gt;
        	//prüfen ob wir noch eingelogt sind&lt;br /&gt;
        	if(ftp.isLoggedIn()==true){&lt;br /&gt;
            	try {&lt;br /&gt;
                	//Verzeichniss Wechselen&lt;br /&gt;
                	ftp.changeDirectory(jList1.getSelectedValue().toString());&lt;br /&gt;
                	// System giebt aus das das Verzeichniss gewechselt wurde&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Verzeichniss Gewechelt nach: &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	System.out.print(&amp;quot;Verzeichniss Gewechselt nach :&amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	// wir Listen die Files in dem Neune Verzeichniss&lt;br /&gt;
                	Iterator&amp;lt;FtpDirEntry&amp;gt; dirs = ftp.listFiles(ftp.getWorkingDirectory());&lt;br /&gt;
                	// wir Löschen die Alten List items&lt;br /&gt;
                	mod.removeAllElements();&lt;br /&gt;
                	Fmod.removeAllElements();&lt;br /&gt;
                	// Wir Tragen die Verzeichniss ein&lt;br /&gt;
                	while(dirs.hasNext()){&lt;br /&gt;
                    	// wir Deklarieren das Element&lt;br /&gt;
                    	direlement=dirs.next();&lt;br /&gt;
                    	// Wir Prüfen ob das Element ein Verzeichniss ist&lt;br /&gt;
                    	if(direlement.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                        	// wir fügen den Verzeichniss namen in die Liste ein&lt;br /&gt;
                        	mod.addElement(direlement.getName());&lt;br /&gt;
                    	}&lt;br /&gt;
                    	else if(direlement.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                        	Fmod.addElement(direlement.getName());&lt;br /&gt;
                    	}&lt;br /&gt;
                	}&lt;br /&gt;
 &lt;br /&gt;
            	} catch (FtpProtocolException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (IOException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	}&lt;br /&gt;
        	}&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== das Multi Download ActionEvent ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Wir Deklarieren den FileChooser&lt;br /&gt;
    	JFileChooser sfd = new JFileChooser();&lt;br /&gt;
    	// Wir schreiben in das Datenfeld Bitte Wählen, da wir nur das Verzeichniss Benötigen&lt;br /&gt;
    	sfd.setSelectedFile(new File(&amp;quot;Bitte Wählen&amp;quot;));&lt;br /&gt;
    	//Wenn Ok Gedrückt Wurde&lt;br /&gt;
    	if(sfd.showSaveDialog(sfd) == JFileChooser.APPROVE_OPTION){&lt;br /&gt;
        	// list erstellen mit Unseren Ausgewählten Daten&lt;br /&gt;
        	Object[] flist = jList2.getSelectedValues();&lt;br /&gt;
        	for(int i = 0; i &amp;lt; flist.length; i++){&lt;br /&gt;
 &lt;br /&gt;
            	try {&lt;br /&gt;
                	// wir geben Aus welche File wir Downloaden möchten&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Get file &amp;quot; + flist[i] + &amp;quot; from Curent Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	System.out.println(&amp;quot;Get file &amp;quot; + flist[i] + &amp;quot; from Curent Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                	// neue File Erstellen&lt;br /&gt;
                	File f = new File(sfd.getSelectedFile().getParent() + &amp;quot;/&amp;quot; + flist[i]);&lt;br /&gt;
                	// Output Stream Erstellen&lt;br /&gt;
                	FileOutputStream os = new FileOutputStream(f);&lt;br /&gt;
                	// Datei Herunterladen&lt;br /&gt;
                	ftp.getFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; +flist[i], os);&lt;br /&gt;
                	// Server Antwortet auf unsere Anfrage&lt;br /&gt;
                	Cmod.addElement(&amp;quot;Server: &amp;quot; + ftp.getLastResponseString());&lt;br /&gt;
                	System.out.println(&amp;quot;Server: &amp;quot; + ftp.getLastResponseString());&lt;br /&gt;
            	} catch (FileNotFoundException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (FtpProtocolException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	} catch (IOException ex) {&lt;br /&gt;
                	Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        	}&lt;br /&gt;
        	// Ausgeben Das der Download Beendet wurde&lt;br /&gt;
        	Cmod.addElement(&amp;quot;Download Vorgang Beendet&amp;quot;);&lt;br /&gt;
        	System.out.println(&amp;quot;Download Vorgang Beendet&amp;quot;);&lt;br /&gt;
    	}&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Multi Upload Action Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
//Wir erstellen einen Filechooser zum Wählen der Daten&lt;br /&gt;
        JFileChooser ofd = new JFileChooser();&lt;br /&gt;
        //mehrfach auswahl Aktivieren&lt;br /&gt;
        ofd.setMultiSelectionEnabled(true);&lt;br /&gt;
        // Wenn im Filechooser auf Ok geklickt wird&lt;br /&gt;
        if(ofd.showOpenDialog(ofd)==JFileChooser.APPROVE_OPTION){&lt;br /&gt;
            // Wir Erstellen eine Filelist die unsere Gewählten files Beinhaltet&lt;br /&gt;
            File[] flist = ofd.getSelectedFiles();&lt;br /&gt;
            // Wir laden jede Einzelne File hoch&lt;br /&gt;
            for(int i = 0 ; i&amp;lt;flist.length;i++){&lt;br /&gt;
                try {&lt;br /&gt;
                    // hiier Deklarieren wir die File&lt;br /&gt;
                    File f = flist[i];&lt;br /&gt;
                    // Info für Console&lt;br /&gt;
                    Cmod.addElement(&amp;quot;Put File &amp;quot; + f.getName() + &amp;quot; in to &amp;quot; + ftp.getWorkingDirectory() + &amp;quot; directory&amp;quot;);&lt;br /&gt;
                    System.out.println(&amp;quot;Put File &amp;quot; + f.getName() + &amp;quot; in to &amp;quot; + ftp.getWorkingDirectory() + &amp;quot; directory&amp;quot;);&lt;br /&gt;
                    // Wir erstellen einen Fileinputstream zum Auslesen der Datei&lt;br /&gt;
                    FileInputStream is = new FileInputStream(f);&lt;br /&gt;
                    // Nun wird die Datei ochgeladen&lt;br /&gt;
                    ftp.putFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + f.getName(), is);&lt;br /&gt;
                    // Console giebt server Nachricht aus&lt;br /&gt;
                    Cmod.addElement(&amp;quot;Server: &amp;quot; +ftp.getLastResponseString());&lt;br /&gt;
                    System.out.println(&amp;quot;Server: &amp;quot; +ftp.getLastResponseString());&lt;br /&gt;
                } catch (FileNotFoundException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                } catch (FtpProtocolException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                } catch (IOException ex) {&lt;br /&gt;
                    Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
                }&lt;br /&gt;
 &lt;br /&gt;
            }&lt;br /&gt;
            // Console giebt aus das Übertragung beendet Wurde&lt;br /&gt;
            Cmod.addElement(&amp;quot;Übertragung der Files &amp;quot; + flist.toString() + &amp;quot; Beendet&amp;quot;);&lt;br /&gt;
            System.out.println(&amp;quot;Übertragung der Files &amp;quot; + flist.toString() + &amp;quot; Beendet&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Übergerordneter Ordner Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Elemente Entfernen&lt;br /&gt;
            mod.removeAllElements();&lt;br /&gt;
            Fmod.removeAllElements();&lt;br /&gt;
 &lt;br /&gt;
            // FtpDirEntry Deklarieren&lt;br /&gt;
            FtpDirEntry dir;         &lt;br /&gt;
            // Verzeichniss Wechseln&lt;br /&gt;
            ftp.changeToParentDirectory();       &lt;br /&gt;
            // Neues Verzeichniss in Console Ausgeben&lt;br /&gt;
            Cmod.addElement(&amp;quot;Aktuelles Verzeichniss &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
            // Verzeichnisse in eine FtpDirEntry List hinzufügen&lt;br /&gt;
            Iterator&amp;lt;FtpDirEntry&amp;gt; dirlist = ftp.listFiles(ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
            // Jedes Verzeichniss Ausgeben&lt;br /&gt;
            while(dirlist.hasNext()){&lt;br /&gt;
                // dir elemnt Deklarieren&lt;br /&gt;
                dir=dirlist.next();&lt;br /&gt;
 &lt;br /&gt;
                // ist dir ein Ordner ?&lt;br /&gt;
                if(dir.getType()==FtpDirEntry.Type.DIR){&lt;br /&gt;
                    // wenn ja dan in List 1&lt;br /&gt;
                    mod.addElement(dir.getName());&lt;br /&gt;
                }&lt;br /&gt;
                // Ist dir eine Datei ?&lt;br /&gt;
                if(dir.getType()==FtpDirEntry.Type.FILE){&lt;br /&gt;
                    // wenn ja dan in List 2&lt;br /&gt;
                    Fmod.addElement(dir.getName());&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Datei Löschen Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
 &lt;br /&gt;
            // Wir Schreiben in die Console das Wir die Datei Löschen&lt;br /&gt;
            Cmod.addElement(&amp;quot;Delete File &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
            System.out.println(&amp;quot;Delete File &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
 &lt;br /&gt;
            // Wir Löschen die Datei&lt;br /&gt;
            ftp.deleteFile(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + jList2.getSelectedValue().toString());&lt;br /&gt;
 &lt;br /&gt;
            // Wir Geben die Server Antwort aus&lt;br /&gt;
            Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
            System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Das Verzeichniss Löschen Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
try {&lt;br /&gt;
            // TODO add your handling code here:&lt;br /&gt;
                // Wir Schreiben in die Console das Wir das Verzeichniss Löschen&lt;br /&gt;
                Cmod.addElement(&amp;quot;Delete Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
                System.out.println(&amp;quot;Delete Directory &amp;quot; + ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Löschen Das Verzeichniss&lt;br /&gt;
                ftp.removeDirectory(ftp.getWorkingDirectory());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Geben die Server Antwort aus&lt;br /&gt;
                Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
                System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        } catch (FtpProtocolException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        } catch (IOException ex) {&lt;br /&gt;
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Das Verzeichniss Erstellen Event ===&lt;br /&gt;
&amp;lt;code=java&amp;gt;&lt;br /&gt;
// Deklarieren der Elemente&lt;br /&gt;
        JDialog dia = new JDialog();&lt;br /&gt;
        dia.setSize(375, 110);&lt;br /&gt;
        dia.setLayout(null);&lt;br /&gt;
        dia.setTitle(&amp;quot;Neues Verzeichniss anlegen&amp;quot;);&lt;br /&gt;
        JButton b = new JButton(&amp;quot;Erstellen&amp;quot;);&lt;br /&gt;
        final JTextField textfield = new JTextField();&lt;br /&gt;
 &lt;br /&gt;
        // Platzieren der Elemente&lt;br /&gt;
        textfield.setLocation(25, 25);&lt;br /&gt;
        textfield.setSize(200, 20);&lt;br /&gt;
        b.setLocation(235, 25);&lt;br /&gt;
        b.setSize(100,20);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
        // Füge Controls Hinzu&lt;br /&gt;
        dia.add(textfield);&lt;br /&gt;
        dia.add(b);&lt;br /&gt;
        dia.setVisible(true);&lt;br /&gt;
 &lt;br /&gt;
        // Action Listner auf Button Legen&lt;br /&gt;
        b.addActionListener(new ActionListener(){&lt;br /&gt;
        public void actionPerformed(ActionEvent e){&lt;br /&gt;
            try {&lt;br /&gt;
 &lt;br /&gt;
                // Console Giebt aus das wir ein Verzeichniss Erstellen&lt;br /&gt;
                Cmod.addElement(&amp;quot;Create Dir &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
                System.out.println(&amp;quot;Create Dir &amp;quot; + ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Erstellen das Verzeichniss&lt;br /&gt;
                ftp.makeDirectory(ftp.getWorkingDirectory() + &amp;quot;/&amp;quot; + textfield.getText());&lt;br /&gt;
 &lt;br /&gt;
                // Wir Geben die System Nachricht aus &lt;br /&gt;
                Cmod.addElement(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
                System.out.println(&amp;quot;Server: &amp;quot;+ ftp.getLastResponseString());&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
            } catch (FtpProtocolException ex) {&lt;br /&gt;
                Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            } catch (IOException ex) {&lt;br /&gt;
                Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);&lt;br /&gt;
            }&lt;br /&gt;
 &lt;br /&gt;
        }&lt;br /&gt;
        });&lt;br /&gt;
&amp;lt;/code=java&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das war der Letzte Teil des Toturials natürlich Könnte man noch X-Funktionen einfügen aber den Spaß überlasse ich euch. Auf Anfrage Sende ich Auch gerne Die Sourcecodes Zu, einfach im Forum eine PN an Andy16823&lt;/div&gt;</summary>
		<author><name>Andy16823</name></author>
	</entry>
</feed>