/*
* Copyright 2003-2010 Tufts University Licensed under the
* Educational Community License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may
* obtain a copy of the License at
*
* http://www.osedu.org/licenses/ECL-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an "AS IS"
* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* FTPFilingTest3.java
*
* Created on October 30, 2003, 10:50 AM
*/
package tufts.oki.remoteFiling;
import java.io.*;
import org.apache.commons.net.ftp.*;
/**
*
* @author Mark Norton
*/
public class RemoteFilingTest {
private static RemoteFilingManager fm = null; // The FTP filing manager.
/** Creates a new instance of FTPFilingTest3 */
public RemoteFilingTest() {
}
public static String readline() throws IOException
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
return in.readLine();
}
public static void printFilesInCurrent () throws java.io.IOException, osid.filing.FilingException {
osid.filing.CabinetEntryIterator it = fm.list();
System.out.println ("Entries in " + (fm.getWorkingDirectory()).getFullName());
while (it.hasNext()) {
RemoteCabinetEntry entry = (RemoteCabinetEntry) it.next();
//String pathname = path.getPathString();
if (entry instanceof RemoteCabinet) {
//System.out.println ("\tDir: " + entry.getDisplayName() + "\t==>" + pathname);
System.out.println ("\tDir: " + entry.getDisplayName());
}
else if (entry instanceof RemoteByteStore) {
//System.out.println ("\tFile: " + entry.getDisplayName() + "\t==>" + pathname);
System.out.println ("\tFile: " + entry.getDisplayName());
}
else
System.out.println ("\tUnknown entry type.");
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws java.io.IOException, osid.filing.FilingException {
String server = null; // Name of the FTP server.
String username = null; // User name.
String password = null; // Password.
System.out.println ("Remote Filing System Test using FTP");
System.out.println ("-----------------------------------");
System.out.println ("");
// Get the server name, user name, and password.
/*
System.out.print ("Enter FTP server name: ");
server = readline();
System.out.print ("Enter user name: ");
username = readline();
System.out.print ("Enter password: ");
password = readline();
*/
server = "ftp.org";
username = "ftpUser";
password = "password";
// Create a filing manager and make an FTP client.
fm = new RemoteFilingManager();
fm.createClient(server, username, password);
//FTPClient client = rc.getClient();
// Print the root base to confirm connection.
// System.out.println ("Root Base: " + rc.getRootBase());
// Open the root directory and list it's contents.
printFilesInCurrent ();
// Get the current working directory.
RemoteCabinet cwd = fm.getWorkingDirectory();
//System.out.println ("Current working directory: " + client.printWorkingDirectory());
// Change the current working directory.
fm.setWorkingDirectory ("www");
//System.out.println ("Current working directory: " + client.printWorkingDirectory());
//printFilesInCurrent ();
fm.setWorkingDirectory ("consult");
// System.out.println ("Current working directory: " + client.printWorkingDirectory());
//printFilesInCurrent ();
cwd = fm.getWorkingDirectory();
// Get the byte store for file to download.
RemoteByteStore bs = (RemoteByteStore) cwd.getCabinetEntryByName("ftptest.txt");
System.out.println ("Byte store to retrieve: " + bs.getDisplayName());
System.out.println ("Size of byte store (should be 56): " + bs.length());
System.out.println ("Size of byte store (second try): " + bs.length());
// Download the bytes in remote file.
System.out.println ("Get bytes to display.");
byte[] buf = bs.getBytes();
System.out.println ("Contents of file - size is: " + buf.length);
for (int i=0; i<buf.length; i++)
System.out.print ((char)buf[i]);
System.out.println ("Done!");
}
}