/*
*/
import java.io.*;
import java.util.*;
/* This program/class is meant to test the functionality
* of the FTPConnection class.
*/
class TestFTP
{
public static void main (String[] args)
{
String serverName;
FTPConnection ftp = null;
try
{
if (args.length == 0)
{
serverName = getStringFromUser("Enter the server you would like to connect to: ");
if (serverName.length() == 0) { return; }
} else {
serverName = args[0];
}
// set the FTPConnection parameter to true if you want to
// see debug output in your console window
ftp = new FTPConnection(false);
System.out.println("Trying to connect anonymously to " + serverName);
ftp.connect(serverName);
if (ftp.login("anonymous", "blah@blah.blah"))
{
System.out.println("Successfully logged in!");
System.out.println("System type is: " + ftp.getSystemType());
System.out.println("Current directory is: " + ftp.getCurrentDirectory());
String files = ftp.listFiles();
String subDirs = ftp.listSubdirectories();
System.out.println("Files in Directory:\n" + files);
System.out.println("Subdirectories:\n" + subDirs);
// try to change to the first subdirectory
StringTokenizer st = new StringTokenizer(subDirs, ftp.lineTerm);
String sdName = "";
if (st.hasMoreTokens()) { sdName = st.nextToken(); }
if (sdName.length() > 0)
{
System.out.println("Changing to directory " + sdName);
if (ftp.changeDirectory(sdName))
{
// just for kicks, try to download the first 3 files in the directory
files = ftp.listFiles();
st = new StringTokenizer(files, ftp.lineTerm);
String fileName;
int count = 1;
while ((st.hasMoreTokens()) && (count < 3)) {
fileName = st.nextToken();
System.out.println("Downloading " + fileName + " to C:\\");
try
{
if (ftp.downloadFile(fileName, "C:\\" + fileName))
{
System.out.println("Download successful!");
} else {
System.out.println("Error downloading " + fileName);
}
} catch(Exception de) {
System.out.println("ERROR: " + de.getMessage());
}
count++;
}
}
} else {
System.out.println("There are no Subdirectories!");
}
ftp.logout();
ftp.disconnect();
System.out.println("Disconnected and Logged Out.");
} else {
System.out.println("Sorry. Could not connect.");
}
} catch(Exception e) {
e.printStackTrace();
try { ftp.disconnect(); } catch(Exception e2) {}
}
}
// private function that gets console input from the user
private static String getStringFromUser(String prompt) throws IOException
{
System.out.print(prompt);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
return br.readLine();
}
}