Bill-
Below is a Java class with a main method that I am using for testing
an FTP upload using the VFS APIs.
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSelector;
import org.apache.commons.vfs.FileSystemManager;
import org.apache.commons.vfs.FileSystemOptions;
import org.apache.commons.vfs.Selectors;
import org.apache.commons.vfs.VFS;
import org.apache.commons.vfs.impl.DefaultFileSystemManager;
import org.apache.commons.vfs.provider.ftp.FtpFileSystemConfigBuilder;
public class Ftptest1 {
	
	
	
	public Ftptest1() {
    //	obtain a FileSystemManager instance
		FileSystemManager mgr = null;
		try {
			mgr = VFS.getManager();
			
			FileSystemOptions fileSystemOptions;
			FileSystemOptions opts = new FileSystemOptions();
			fileSystemOptions = opts;
			//fileSystemOptions = opts;
			//SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(fileSystemOptions,
"no");
			//FtpFileSystemConfigBuilder.getInstance().setDataTimeout(opts, 100);
			FtpFileSystemConfigBuilder.getInstance().setUserDirIsRoot(fileSystemOptions,
false);
			//FileSystemConfigBuilder config =
(FileSystemConfigBuilder)FtpFileSystemConfigBuilder.getInstance();
			
			
			
			boolean tmp =
FtpFileSystemConfigBuilder.getInstance().getUserDirIsRoot(fileSystemOptions);
			System.out.println("Setting for 'UserDirIsRoot' :" + tmp);
			//locate the local file by name
			System.out.println("Now locate the local file by name");
			String strLocalFile = "C:\\sgladstone\\edfiles\\" + "datafile";
			FileObject foLocalFile = mgr.resolveFile(strLocalFile);
				 	
//			locate the remote file by name
			System.out.println("Now locate the remote file by name");
			
			String rUrlStr =
"
ftp://myuserprofile:mypassword@myas400hostname/home/aplsup/sarahtest.txt"
;
			FileObject foRemoteFile = mgr.resolveFile( rUrlStr, opts);
			
			if(foRemoteFile.exists()){
				System.out.println("Remote file exists");
			}else{
				System.out.println("Remote file does NOT exist");
			}
			
			FileSelector fS = Selectors.SELECT_SELF ;
			
//			 Copy the contents of the local file to the remote file.
//			 ie upload the file to the server
			if (foLocalFile.exists()){	
				System.out.println("local file exists, try copyFrom cmd");
				foRemoteFile.copyFrom(foLocalFile, fS);	
			}else{
				System.out.println("Local file does not exist. Nothing to upload. ");
			}
			
		}catch (Exception e) {
			e.printStackTrace();
		}finally {
			System.out.println("Now close the FileSystemManager");
			if( mgr != null) ((DefaultFileSystemManager) mgr).close();	
		}
	
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		 new Ftptest1();
		 System.out.println("Now exit main");
	}
}
On Wed, Oct 22, 2008 at 8:49 AM, Blalock, Bill <Bill.Blalock@xxxxxxxx> wrote:
Good morning Sarah
Apache VFS uses Jakarta Commons Net for the FTP part.
With luck the Net part will take initialization parameters, and may even
have a console which could show the dialog between the client and
server.
I've downloaded the source for these projects because I am curious and I
will learn things applicable to my projects.
Could you send me a stand alone sample program which transfers using
FTP?
Bill B
As an Amazon Associate we earn from qualifying purchases.