import ftp.*;
import java.io.*;
import java.net.*;
/************************************************************************************
* This is an FTP program and an example of using FtpBean.
*
* Program Description:
* It connects to a ftp server.
* Go to a directory.
* Then list its content with help of the FtpListResult class.
* Finally, it gets a binary file.
* In the downloading progress, it tells how many bytes are being downloaded.
*
* Note that this class implements the FtpObserver interface, which
* make this class have the ability to monitor the downloading or
* uploading progress.
* If you don't need to monitor it, then you don't need to implement this interface.
***********************************************************************************/
class FtpProg implements FtpObserver
{
//Variablen Deklaration
FtpBean ftp;
long num_of_bytes = 0;
// Main
public static void main(String[] args) throws Exception
{
System.out.println("********************************************************************************");
System.out.println("FTP Programm Version 1.0 beta");
System.out.println();
System.out.println("********************************************************************************");
System.out.println();
System.out.println();
System.out.println();
FtpProg myFtpProg = new FtpProg();
myFtpProg.connect();
//ftp.listDirectory();
//ftp.getFile();
myFtpProg.close();
System.out.println();
System.out.println();
System.out.println();
System.out.println();
System.out.println("********************************************************************************");
System.out.println("Programm Ende");
System.out.println();
System.out.println("********************************************************************************");
}//public static void main(String[] args)
public FtpProg()
{
// Create a new FtpBean object.
ftp = new FtpBean();
}//public ftp()
// Connect to a ftp server.
public void connect()
{
try
{
ftp.ftpConnect("ftp://servername", "username", "passwort");
}
catch(Exception e)
{
System.out.println(e);
try
{
PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out, "Cp850"));
out.println("!!!Die angegebenen Serverdaten sind ungültig!!!");
out.flush();
}
catch (UnsupportedEncodingException d)
{
System.err.println(d);
}
}
}//public void connect()
// Close connection
public void close()
{
try
{
ftp.close();
} catch(Exception e)
{
System.out.println(e);
try
{
PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out, "Cp850"));
out.println("!!!Fehler beim schließen der Verbindung!!!");
out.flush();
}
catch (UnsupportedEncodingException d)
{
System.err.println(d);
}
}
}//public void close()
// Go to directory pub and list its content.
public void listDirectory()
{
FtpListResult ftplrs = null;
try
{
// Go to directory 'pub/redhat/redhat-6.2/i386/RedHat/RPMS'.
ftp.setDirectory("pub/redhat/redhat-6.2/i386/RedHat/RPMS");
// Get its directory content.
ftplrs = ftp.getDirectoryContent();
} catch(Exception e)
{
System.out.println(e);
}
// Print out the type and file name of each row.
while(ftplrs.next())
{
int type = ftplrs.getType();
if(type == FtpListResult.DIRECTORY)
System.out.print("DIR\t");
else if(type == FtpListResult.FILE)
System.out.print("FILE\t");
else if(type == FtpListResult.LINK)
System.out.print("LINK\t");
else if(type == FtpListResult.OTHERS)
System.out.print("OTHER\t");
System.out.println(ftplrs.getName());
}
}//public void listDirectory()
// Get the file.
public void getFile()
{
try
{
// Get the binary file 'export.xml' and save it to
// the name 'local_file_name' in the hard disk.
// Passing this class which implements the FtpObserver interface to
// monitor this downloading progress. Every time new bytes are read,
// the byteRead(int) method of this class is invoked by the bean.
ftp.getBinaryFile("export.xml", "local_file_name", this);
} catch(Exception e)
{
System.out.println(e);
}
}//public void getFile()
// Implemented for FtpObserver interface.
// To monitor download progress.
public void byteRead(int bytes)
{
num_of_bytes += bytes;
System.out.println(num_of_bytes + " of bytes read already.");
}
// Needed to implements by FtpObserver interface.
public void byteWrite(int bytes)
{
}
}//class ftp implements FtpObserver