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.