Secure FTP Factory

com.jscape.inet.ftps
Class Ftps

java.lang.Object
  extended by com.jscape.inet.ftps.Ftps

public class Ftps
extends java.lang.Object

Implements the basic functionality of a FTPS (FTP over SSL) client.

Example Usage:

 // create new Ftps instance
 Ftps ftps = new Ftps("ftp.myserver.com","jsmith","secret");
 try {
 // establish connection
 ftps.connect();
 

// print out directory listing System.out.println(ftps.getDirListingAsString());

// disconnect from FTPS server ftps.disconnect(); } catch(Exception e) { System.out.println(e); }


Nested Class Summary
static interface Ftps.ConnectionStrategy
          The FTP client connection strategy.
 
Field Summary
static int ASCII
          Flag to indicate that ASCII transfer mode is used.
static Ftps.ConnectionStrategy AUTH_SSL
          Connection type for AUTH SSL FTP session.
static Ftps.ConnectionStrategy AUTH_TLS
          Connection type for AUTH TLS FTP session (default).
static int AUTO
          Flag to indicate that automatic transfer mode detection is used.
static int BINARY
          Flag to indicate that BINARY transfer mode is used.
static java.lang.String CURRENT_DIR
          Represents the current directory.
static Ftps.ConnectionStrategy IMPLICIT_SSL
          Connection type for implicit SSL session.
static java.lang.String UP_DIR
          Represents the parent directory of current directory.
 
Constructor Summary
Ftps()
          Creates a new Ftps instance.
Ftps(java.lang.String host, java.lang.String user, java.lang.String pwd)
          Creates a new Ftps instance.
Ftps(java.lang.String host, java.lang.String user, java.lang.String pwd, java.io.File localDirectory)
          Creates new Ftp instance.
Ftps(java.lang.String host, java.lang.String user, java.lang.String pwd, int port)
          Creates a new Ftp instance.
Ftps(java.lang.String host, java.lang.String user, java.lang.String pwd, java.lang.String account)
          Creates a new Ftps instance.
 
Method Summary
 void abortDownloadThreads()
          Abort all download threads.
 void abortUploadThreads()
          Cancel all upload threads.
 void addFtpListener(FtpListener listener)
          Adds FTP event listener.
 void addFtpsCertificateVerifier(FtpsCertificateVerifier listener)
          Deprecated. see setFtpsCertificateVerifier(FtpsCertificateVerifier)
 void changePassword(java.lang.String oldPassword, java.lang.String newPassword)
          Changes the password for current account.
 boolean checksum(byte[] data, java.lang.String remoteFile)
          Compares checksum of the local data and remote file.
 boolean checksum(java.io.File localfile, java.lang.String remoteFile)
          Compares checksum of the local and remote files.
 void clearCommandChannel()
          Clears command channel.
 void clearProxySettings()
          Clears proxy server values.
 void connect()
          Connects to FTP server and performs login.
 void connect(boolean login)
          Connects to FTP server and optionally performs login.
 void deleteDir(java.lang.String remoteDirectory)
          Deletes directory from FTP server.
 void deleteDir(java.lang.String remoteDirectory, boolean recurse)
          Deletes directory from FTP server.
 void deleteFile(java.lang.String remoteFile)
          Deletes remote file from FTP server.
 void disconnect()
          Quits the FTP session and disconnects from the FTP server.
 void download(java.io.OutputStream out, java.lang.String remoteFile)
          Downloads file from FTP server and writes contents to provided OutputStream.
 java.io.File download(java.lang.String remoteFile)
          Downloads file from FTP server.
 java.io.File download(java.lang.String localFile, java.lang.String remoteFile)
          Downloads file from FTP server.
 void downloadDir(java.lang.String remoteDir)
          Downloads remote directory and contents recursively from FTP server.
 void downloadDir(java.lang.String remoteDir, int retryLimit, boolean performChecksum)
          Downloads remote directory and contents recursively from FTP server.
 void downloadDir(java.lang.String remoteDir, int retryLimit, boolean performChecksum, int threadCount)
          Download directory.
 void downloadDir(java.lang.String remoteDir, int retryLimit, int retryInterval, boolean performChecksum)
          Downloads remote directory and contents recursively from FTP server.
 void downloadDir(java.lang.String remoteDir, int retryLimit, int retryInterval, boolean performChecksum, int threadCount)
          Downloads remote directory and contents from FTP server.
 java.lang.String getAccount()
          Gets optional account of FTP server.
 boolean getAutoDetectIpv6()
          Get auto detect Ipv6 detection mode.
 int getBlockTransferSize()
          Gets blocksize for use in transferring files.
 java.lang.String getCharacterEncoding()
          Deprecated. use the getWireEncoding method
 boolean getCompression()
          Gets whether the data is compressed during the transfering.
 boolean getConnectBeforeCommand()
          Gets whether connection will be established before sending data transfer command.
 Ftps.ConnectionStrategy getConnectionType()
          Returns the current connection type.
 javax.net.ssl.SSLContext getContext()
          Obtains the current SSL context.
 java.lang.String getContextAlgorithm()
          Gets algorithm used for SSL communications in default context.
 java.lang.String getContextAlgorithmProvider()
          Gets provider used for X509 algorithm in default context.
 java.lang.String getContextKeystoreProvider()
          Gets keystore provider used for default context.
 java.lang.String getContextProtocol()
          Gets protocol used for SSL communications in default context.
 java.lang.String getContextProtocolProvider()
          Gets provider used for TLS protocol in default context.
 int getDataPort()
          Deprecated. Replaced by getDataPortStart and getDataPortEnd
 int getDataPortEnd()
          Gets the data port end range for incoming non-passive (active) data connections.
 int getDataPortStart()
          Gets the data port start range for incoming non-passive (active) data connections.
 boolean getDebug()
          Gets debugging state.
 java.io.PrintStream getDebugStream()
          Gets PrintStream used in reporting debug statements.
 java.lang.String getDir()
          Gets current working directory of FTP server.
 java.util.Enumeration getDirListing()
          Gets directory listing from FTP server.
 java.util.Enumeration getDirListing(java.lang.String filter)
          Gets file listing of files matching filter criteria.
 java.lang.String getDirListingAsString()
          Gets raw directory listing of files on FTP server.
 java.lang.String getDirListingAsString(java.lang.String filter)
          Gets raw directory listing of files matching filter criteria.
 java.util.Enumeration getDirListingRegex(java.lang.String filter)
          Gets directory listing from FTP server returning only file and directory names that match the regular expression.
 java.lang.String getDiskEncoding()
          Gets character encoding used when reading data from disk for ASCII file transfer.
 java.lang.String[] getEnabledCiphers()
          Returns user-defined enabled SSL cipher suites.
 boolean getErrorOnSizeCommand()
          Gets whether an exception should be thrown when downloading a file and server does not support SIZE command.
 java.util.Enumeration getFeatures()
          Returns supported server features.
 long getFilesize(java.lang.String remoteFile)
          Gets filesize of remote file from FTP server as represented in ASCII.
 java.util.Date getFileTimestamp(java.lang.String remoteFile)
          Gets date/timestamp of remote file from FTP server.
 FtpFileParser getFtpFileParser()
          Gets the FtpFileParser used to parse directory listing returned when invoking Ftp#getDirListing method.
 FtpsCertificateVerifier getFtpsCertificateVerifier()
          Gets FTPS certificate verifier.
 java.lang.String getHostname()
          Gets hostname of FTP server.
 java.io.InputStream getInputStream(java.lang.String remoteFile, long offset)
          Gets a InputStream from FTP server for the purposes of downloading a file.
 int getLinger()
          Gets the linger time for closing data sockets.
 java.util.LinkedList getListeners()
          Get listeners.
 java.lang.String getLocalChecksum(java.io.File localFile)
          Returns local checksum.
 java.io.File getLocalDir()
          Gets local directory to be used in FTP session.
 java.util.Enumeration getLocalDirListing()
          Gets local directory listing.
 java.util.Enumeration getMachineDirListing(java.lang.String dirname)
          Gets directory listing using MLSD command.
 java.util.Enumeration getMachineDirListing(java.lang.String dirname, java.lang.String filter)
          Gets file listing of specified directory using MLSD command.
 FtpFile getMachineFileListing(java.lang.String filename)
          Gets the file description for the specified filename using MLST command.
 int getMode()
          Gets data transfer mode for current session.
 java.util.Enumeration getNameListing()
          Gets directory listing of files on FTP server using NLST command.
 java.util.Enumeration getNameListing(java.lang.String filter)
          Gets directory listing of files on FTP server matching filter criteria and using NLST command.
 java.lang.String getNATAddress()
          Get the NAT address.
 java.io.OutputStream getOutputStream(java.lang.String fileName, long off, boolean append)
          Gets an OutputStream from FTP server for the purposes of uploading a file.
 boolean getPassive()
          Gets whether passive mode should be used.
 java.lang.String getPassword()
          Returns current FTP user password.
 int getPort()
          Gets port of FTP server.
 java.lang.String getPortAddress()
          Gets the external address to use when using active connections.
 java.lang.String getProxyHostname()
          Get proxy hostname.
 java.lang.String getProxyPassword()
          Get proxy password.
 int getProxyPort()
          Get proxy port.
 java.lang.String getProxyType()
          Get proxy type.
 java.lang.String getProxyUsername()
          Get proxy username.
 int getRecursiveDirectoryFileCount(java.lang.String directory)
          Get size of all files rescursively in a given remote directory.
 long getRecursiveDirectorySize(java.lang.String directory)
          Get size of all files rescursively in a given remote directory.
 java.lang.String getRemoteFileChecksum(java.lang.String remoteFile)
          Returns remote file checksum.
 java.util.Vector getRemoteFileList(java.lang.String remoteDir)
          Gets all the remote files from the current directory and subdirectories.
 int getResponseCode()
          Gets response code from last FTP command.
 boolean getServerFeaturesCommandSuccessful()
           
 boolean getShutdownCCC()
          Gets whether SSL connection should be shutdown after successfully issuing CCC command.
 java.lang.String getSystemType()
          Gets the system type of remote FTP server.
 int getTimeout()
          Gets the timeout for opening connection to FTP server.
 boolean getUseEPRT()
          Gets whether to use EPSV or PORT command for data tranfers.
 boolean getUseEPSV()
          Gets whether to use EPSV or PASV command for data tranfers.
 java.lang.String getUsername()
          Gets username of FTP user.
 java.lang.String getWireEncoding()
          Gets character encoding used when issuing commands and reading files from FTP server in ASCII mode.
 void interrupt()
          Interrupts the current data transfer and sets interrupted flag to true.
 boolean interrupted()
          Checks if transfer process was interrupted.
 boolean isConnected()
          Checks if client is connected to FTP server.
 boolean isFeatureSupported(java.lang.String command)
          Looks for the command argument into the server features list to validate if it is supported
 java.lang.String issueCommand(java.lang.String cmd)
          Issues the command to FTP server.
 java.lang.String issueCommandCheck(java.lang.String cmd)
          Issues command to FTP server.
 void login()
          Logs into FTP server after establishing a connection.
 void makeDir(java.lang.String newDirectory)
          Makes directory on FTP server.
 void makeDirRecursive(java.lang.String newDirectory)
          Makes directory on FTP server, creating subdirectories if necessary.
 java.io.File makeLocalDir(java.lang.String directoryName)
          Creates local directory.
 void mdelete(java.lang.String filter)
          Deletes multiple files matching regular in FTP server's current directory.
 void mdownload(java.util.Enumeration fileNames)
          Downloads specified files in current working remote directory from FTP server to local directory.
 void mdownload(java.lang.String filter)
          Downloads multiple files matching regular expression from FTP server's current directory.
 void mupload(java.util.Enumeration fileNames)
          Uploads multiple files to FTP server Uploads are performed relative to current local directory.
 void mupload(java.lang.String filter)
          Uploads multiple files matching regular expression to FTP server's current directory.
 java.lang.String noop()
          Sends a NOOP (No Operation) command to FTP server.
 java.lang.String readResponse()
          Reads response from FTP server.
 void removeFtpListener(FtpListener listener)
          Removes specified FTP event listener.
 void renameFile(java.lang.String remoteFile, java.lang.String newFile)
          Renames remote file on FTP server.
 void reset()
          Resets the interrupted flag to false.
 java.io.File resumeDownload(java.lang.String remoteFile, long off)
          Resumes download of file from FTP server.
 java.io.File resumeDownload(java.lang.String localFile, java.lang.String remoteFile, long off)
          Resumes download of file from FTP server.
 void resumeUpload(java.io.File localFile, long off)
          Resumes upload of file to FTP server.
 void resumeUpload(java.io.File localFile, java.lang.String remoteFile, long off)
          Resumes upload of file to FTP server.
 void resumeUpload(java.lang.String localFile, long off)
          Resumes upload of file to FTP server.
 void resumeUpload(java.lang.String localFile, java.lang.String remoteFile, long off)
          Resumes upload of file to FTP server.
 void setAccount(java.lang.String account)
          Sets optional account of FTP server.
 void setAscii()
          Sets data transfer mode to ASCII.
 void setAuto(boolean auto)
          Sets data transfer mode to automatic detect.
 void setAutoDetectIpv6(boolean value)
          Set auto detect Ipv6 detection mode.
 void setBinary()
          Sets data transfer mode to binary.
 void setBlockTransferSize(int blockSize)
          Sets block size for use in transferring files.
 void setCharacterEncoding(java.lang.String encoding)
          Deprecated. use the setWireEncoding method
 void setClientCertificates(java.security.KeyStore keystore, java.lang.String password)
          Sets optional client certificate to be used during authentication.
 void setClientCertificates(java.lang.String filename, java.lang.String password)
          Sets optional client certificate to be used during authentication.
 void setClientCertificates(java.lang.String filename, java.lang.String password, java.lang.String storetype)
          Sets optional client certificate to be used during authentication.
 void setCompression(boolean compression)
          Sets whether the data will be compressed during the transfer.
 void setConnectBeforeCommand(boolean value)
          Gets whether connection will be established before sending data transfer command.
 void setConnectionType(Ftps.ConnectionStrategy connectionType)
          Sets the connection type.
 void setContext(javax.net.ssl.SSLContext context)
          Sets the current SSL context.
 void setContextAlgorithm(java.lang.String algorithm)
          Sets algorithm used for SSL communications in default context.
 void setContextAlgorithmProvider(java.lang.String provider)
          Sets provider used for X509 algorithm in default context.
 void setContextKeystoreProvider(java.lang.String provider)
          Sets provider used for keystore in default context.
 void setContextProtocol(java.lang.String protocol)
          Sets protocol used for SSL communications in default context.
 void setContextProtocolProvider(java.lang.String provider)
          Sets provider used for TLS protocol in default context.
 void setDataPort(int dataPort)
          Deprecated. Replaced by setDataPortRange
 void setDataPortRange(int dataPortStart, int dataPortEnd)
          Sets the data port range for incoming non-passive (active) connections.
 void setDebug(boolean debug)
          Sets debugging state.
 void setDebugStream(java.io.PrintStream debugStream)
          Sets PrintStream used in reporting debug statements.
 void setDir(java.lang.String remoteDirectory)
          Sets current directory on FTP server.
 void setDirUp()
          Sets current directory on FTP server to parent directory.
 void setDiskEncoding(java.lang.String encoding)
          Sets character set used when reading data from disk for ASCII file transfer.
 void setEnabledCiphers(java.lang.String[] enabledCiphers)
          Sets user-defined enabled SSL cipher suites.
 void setErrorOnSizeCommand(boolean error)
          Sets whether an exception should be thrown when downloading a file and server does not support SIZE command.
 void setFileCreationTime(java.lang.String remoteName, java.util.Date date)
          Sets file creation time with a new value.
 void setFileModificationTime(java.lang.String remoteName, java.util.Date date)
          Sets the file modification time with a new value.
 void setFileTimestamp(java.lang.String remoteName, java.util.Date dateFile)
          Sets date/timestamp of remote file from FTP server.
 void setFtpFileParser(FtpFileParser parser)
          Sets the FtpFileParser used to parse directory listing returned when invoking Ftps#getDirListing method.
 void setFtpsCertificateVerifier(FtpsCertificateVerifier listener)
          Sets FTPS certificate verifier.
 void setHostname(java.lang.String host)
          Sets hostname of FTP server.
 void setHostname(java.lang.String host, boolean ensureConnected)
          Sets the hostname of FTP Server.
 void setLinger(int linger)
          Sets the linger time for closing data sockets.
 void setListeners(java.util.LinkedList listeners)
          Set the list of listeners.
 void setLocalDir(java.io.File localDirectory)
          Sets local directory to be used in FTP session.
 void setNATAddress(java.lang.String ipAddress)
          Sets a NAT address which will be used for PASV file transfers.
 void setPassive(boolean passive)
          Sets whether passive mode should be used.
 void setPassword(java.lang.String password)
          Sets password of FTP user.
 void setPort(int port)
          Sets port of FTP server.
 void setPortAddress(java.lang.String string)
          Sets the external address to use when using active connections using the PORT command.
 void setProtectionLevel(char level)
          Changes the protection level.
 void setProtocol(java.lang.String value)
          Sets TLS/SSL protocol name.
 void setProxyAuthentication(java.lang.String proxyUsername, java.lang.String proxyPassword)
          Sets the username and password to use when for authentication with proxy server.
 void setProxyHost(java.lang.String proxyHostname, int proxyPort)
          Sets the proxy hostname and port for this FTPS connection.
 void setProxyType(java.lang.String proxyType)
          Sets the proxy type will be used for this FTPS connection.
 void setReceiveBufferSize(int receiveBufferSize)
          Sets the receive buffer size option of the ftps connection.
 void setSendBufferSize(int sendBufferSize)
          Sets the send buffer size option of the ftps connection.
 void setServerCertificates(java.security.KeyStore keystore)
          Sets optional server certificate to be used during authentication.
 void setServerCertificates(java.lang.String filename, java.lang.String password)
          Sets optional server certificate to be used during authentication.
 void setServerCertificates(java.lang.String filename, java.lang.String password, java.lang.String storetype)
          Sets optional server certificate to be used during authentication.
 void setShutdownCCC(boolean shutdownCCC)
          Sets whether SSL connection should be shutdown after successfully issuing CCC command.
 void setTimeout(int timeout)
          Sets the timeout for opening connection to FTP server.
 void setUseEPRT(boolean useEPRT)
          Sets whether to use EPRT or PORT command for data tranfers.
 void setUseEPSV(boolean useEPSV)
          Sets whether to use EPSV or PASV command for data tranfers.
 void setUsername(java.lang.String user)
          Sets username of FTP user.
 void setWireEncoding(java.lang.String encoding)
          Sets character set used when issuing commands and transferring files in ASCII mode.
 void upload(byte[] data, java.lang.String remoteFile)
          Uploads file to FTP server where contents of file is not on disk but in memory.
 void upload(byte[] data, java.lang.String remoteFile, boolean append)
          Uploads file to FTP server where contents of file is not on disk but in memory.
 void upload(java.io.File localFile)
          Uploads file to FTP server.
 void upload(java.io.File localFile, boolean append)
          Uploads file to FTP server.
 void upload(java.io.File localFile, java.lang.String remoteFile)
          Uploads file to FTP server.
 void upload(java.io.File localFile, java.lang.String remoteFile, boolean append)
          Uploads file to FTP server.
 void upload(java.io.InputStream input, java.lang.String remoteFile)
          Uploads contents of InputStream to FTP server.
 void upload(java.io.InputStream input, java.lang.String remoteFile, boolean append)
          Uploads contents of InputStream to FTP server.
 void upload(java.lang.String localFile)
          Uploads file to FTP server.
 void upload(java.lang.String localFile, boolean append)
          Uploads file to FTP server.
 void upload(java.lang.String extension, java.io.File localFile)
          Uploads file to FTP server using temporary extension, then renames file back to original name once uploaded.
 void upload(java.lang.String localFile, java.lang.String remoteFile)
          Uploads file to FTP server.
 void upload(java.lang.String localFile, java.lang.String remoteFile, boolean append)
          Uploads file to FTP server.
 void uploadDir(java.io.File localDir)
          Uploads local directory and contents recursively to FTP server.
 void uploadDir(java.io.File localDir, int retryLimit, boolean performChecksum)
          Uploads local directory and contents to FTP server.
 void uploadDir(java.io.File localDir, int retryLimit, boolean performChecksum, java.lang.String extension)
          Uploads local directory and contents to FTP server.
 void uploadDir(java.io.File localDir, int retryLimit, boolean performChecksum, java.lang.String extension, int threadCount)
          Uploads local directory and contents to FTP server.
 void uploadDir(java.io.File localDir, int retryLimit, int retryInterval, boolean performChecksum, java.lang.String extension)
          Uploads local directory and contents to FTP server.
 void uploadDir(java.io.File localDir, int retryLimit, int retryInterval, boolean performChecksum, java.lang.String extension, int threadCount)
          Uploads local directory and contents to FTP server.
 void uploadDir(java.io.File localDir, java.lang.String extension)
          Uploads local directory and contents recursively to FTP server.
 java.lang.String uploadUnique(java.io.File file)
          Uploads the file which is created in the current directory under a name unique to that directory.
 java.lang.String uploadUnique(java.io.File file, boolean useFilenameAsSeed)
          Uploads the file which is created in the current directory under a name unique to that directory.
 java.lang.String uploadUnique(java.io.InputStream in, java.lang.String fileName)
          Uploads the file which is created in the current directory under a name unique to that directory.
 java.lang.String uploadUnique(java.lang.String fileName)
          Uploads the file which is created in the current directory under a name unique to that directory.
 java.lang.String uploadUnique(java.lang.String fileName, boolean useFilenameAsSeed)
          Uploads the file which is created in the current directory under a name unique to that directory.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

AUTO

public static final int AUTO
Flag to indicate that automatic transfer mode detection is used.

See Also:
getMode(), Constant Field Values

ASCII

public static final int ASCII
Flag to indicate that ASCII transfer mode is used.

See Also:
getMode(), Constant Field Values

BINARY

public static final int BINARY
Flag to indicate that BINARY transfer mode is used.

See Also:
getMode(), Constant Field Values

CURRENT_DIR

public static final java.lang.String CURRENT_DIR
Represents the current directory. Value of "."

See Also:
Constant Field Values

UP_DIR

public static final java.lang.String UP_DIR
Represents the parent directory of current directory. Value of ".."

See Also:
Constant Field Values

IMPLICIT_SSL

public static final Ftps.ConnectionStrategy IMPLICIT_SSL
Connection type for implicit SSL session.


AUTH_TLS

public static final Ftps.ConnectionStrategy AUTH_TLS
Connection type for AUTH TLS FTP session (default).


AUTH_SSL

public static final Ftps.ConnectionStrategy AUTH_SSL
Connection type for AUTH SSL FTP session.

Constructor Detail

Ftps

public Ftps()
Creates a new Ftps instance.


Ftps

public Ftps(java.lang.String host,
            java.lang.String user,
            java.lang.String pwd)
Creates a new Ftps instance.

Parameters:
host - the hostname of FTP server
user - the username of FTP user
pwd - the password of FTP usZer

Ftps

public Ftps(java.lang.String host,
            java.lang.String user,
            java.lang.String pwd,
            java.lang.String account)
Creates a new Ftps instance.

Parameters:
host - the hostname of FTP server
user - the username of FTP user
pwd - the password of FTP user
account - the optional account of FTP user or null if not needed

Ftps

public Ftps(java.lang.String host,
            java.lang.String user,
            java.lang.String pwd,
            int port)
Creates a new Ftp instance.

Parameters:
host - the hostname of FTP server
user - the username of FTP user
pwd - the password of FTP user
port - the port of FTP server

Ftps

public Ftps(java.lang.String host,
            java.lang.String user,
            java.lang.String pwd,
            java.io.File localDirectory)
Creates new Ftp instance.

Parameters:
host - the hostname of FTP server
user - the username of FTP user
pwd - the password of FTP user
localDirectory - the local directory to be used for uploading / downloading files
Method Detail

setProxyAuthentication

public void setProxyAuthentication(java.lang.String proxyUsername,
                                   java.lang.String proxyPassword)
Sets the username and password to use when for authentication with proxy server. To clear these settings invoke the #clearProxySettings method.

Parameters:
proxyUsername - the proxy username
proxyPassword - the proxy password
See Also:
clearProxySettings()

setAutoDetectIpv6

public void setAutoDetectIpv6(boolean value)
Set auto detect Ipv6 detection mode.

Parameters:
value -

getAutoDetectIpv6

public boolean getAutoDetectIpv6()
Get auto detect Ipv6 detection mode.

Returns:

getProxyUsername

public java.lang.String getProxyUsername()
Get proxy username.

Returns:
username

getProxyPassword

public java.lang.String getProxyPassword()
Get proxy password.

Returns:
password

getProxyHostname

public java.lang.String getProxyHostname()
Get proxy hostname.

Returns:
proxy hostname

getProxyPort

public int getProxyPort()
Get proxy port.

Returns:
port.

setProxyHost

public void setProxyHost(java.lang.String proxyHostname,
                         int proxyPort)
Sets the proxy hostname and port for this FTPS connection. To clear these settings invoke the #clearProxySettings method.

Parameters:
proxyHostname - the hostname or ip address of the proxy server
proxyPort - the port of the proxy server
See Also:
clearProxySettings()

setProxyType

public void setProxyType(java.lang.String proxyType)
Sets the proxy type will be used for this FTPS connection.

Parameters:
proxyType - The proxy type. Valid values: HTTP, SOCKS5

getProxyType

public java.lang.String getProxyType()
Get proxy type.

Returns:
proxy

clearProxySettings

public void clearProxySettings()
Clears proxy server values.


setAscii

public void setAscii()
              throws FtpException
Sets data transfer mode to ASCII. You must be connected to the FTP server prior to invoking this method.

Throws:
FtpException - if an I/O or FTP error occurs.

setAuto

public void setAuto(boolean auto)
             throws FtpException
Sets data transfer mode to automatic detect. Any files with a base Content-Type value of text will be transferred using ASCII, all other files will be transfered using binary.

Example: file.txt, Content-Type = text/plain, uploaded using ASCII
Example: image.jpg Content-Type = image/jpg, uploaded using binary

Parameters:
auto - true to turn automatic detect on false to turn off
Throws:
FtpException - if an I/O or Ftp related error occurs

setBinary

public void setBinary()
               throws FtpException
Sets data transfer mode to binary. You must be connected to the FTP server prior to invoking this method.

Throws:
FtpException - if an I/O or FTP error occurs.

setBlockTransferSize

public void setBlockTransferSize(int blockSize)
Sets block size for use in transferring files. Default block size is 8192 bytes.

Parameters:
blockSize - the block size in bytes

getBlockTransferSize

public int getBlockTransferSize()
Gets blocksize for use in transferring files. Default block size is 8192 bytes.

Returns:
blocksize in bytes

setCharacterEncoding

public void setCharacterEncoding(java.lang.String encoding)
Deprecated. use the setWireEncoding method

Sets character set used when issuing commands and transferring files. This is helpful in instances where the FTP server uses a different character encoding than that used by the FTP client.

Parameters:
encoding - the character encoding to be used

getCharacterEncoding

public java.lang.String getCharacterEncoding()
Deprecated. use the getWireEncoding method

Gets character encoding used when issuing commands and transferring files.

Returns:
the character encoding to be used

setCompression

public void setCompression(boolean compression)
Sets whether the data will be compressed during the transfer.

Parameters:
compression - Compression indicator.

getCompression

public boolean getCompression()
Gets whether the data is compressed during the transfering. The data will be compressed if the Ftps server support this feature (MODE Z command)

Returns:
true data will be compressed, false otherwise.

setClientCertificates

public void setClientCertificates(java.security.KeyStore keystore,
                                  java.lang.String password)
                           throws FtpException
Sets optional client certificate to be used during authentication.

Parameters:
keystore - the JKS keystore containing certificates
password - the password for opening JKS keystore
Throws:
FtpException - if an error occurs opening keystore

setClientCertificates

public void setClientCertificates(java.lang.String filename,
                                  java.lang.String password)
                           throws FtpException
Sets optional client certificate to be used during authentication. Default expected keystore format is JKS format. Existing certificate may be imported into keystore using the keytool utility provided in the Sun JDK.

Example:

 keytool.exe -import -file x509.cer -keystore your_store_name
 

The example above imports the certificate x509.cer into a keystore named your_store_name

Parameters:
filename - the keystore file containing the client certificate
password - the keystore password
Throws:
FtpException - if an I/O error occurs

setClientCertificates

public void setClientCertificates(java.lang.String filename,
                                  java.lang.String password,
                                  java.lang.String storetype)
                           throws FtpException
Sets optional client certificate to be used during authentication. Default expected keystore format is JKS format. Existing certificate may be imported into keystore using the keytool utility provided in the Sun JDK.

Example:

 keytool.exe -import -file x509.cer -keystore your_store_name
 

The example above imports the certificate x509.cer into a keystore named your_store_name

Parameters:
filename - the keystore file containing the client certificate
password - the keystore password
storetype - the keystore type valid values include jks and pkcs12
Throws:
FtpException - if an I/O error occurs

setConnectBeforeCommand

public void setConnectBeforeCommand(boolean value)
Gets whether connection will be established before sending data transfer command.

Parameters:
value - true if should connect before sending data transfer command, false otherwise send the command in passive mode

getConnectBeforeCommand

public boolean getConnectBeforeCommand()
Gets whether connection will be established before sending data transfer command.

Returns:
true if should connect before sending data transfer command, false otherwise

isConnected

public boolean isConnected()
Checks if client is connected to FTP server. To check if FTP client is connected to FTP server a NOOP (No Operation) command is sent to the FTP server. If connection has been lost then a value of false will be returned and an FtpConnectionLostEvent will be fired to any subscribed FtpListener.

Returns:
true if connected false otherwise
See Also:
FtpConnectionLostEvent

setConnectionType

public void setConnectionType(Ftps.ConnectionStrategy connectionType)
Sets the connection type. Default connection type is Ftps.AUTH_TLS.

Parameters:
connectionType - the current connection type

getConnectionType

public Ftps.ConnectionStrategy getConnectionType()
Returns the current connection type. Default connection type is Ftps.AUTH_TLS.

Returns:
the current connection type

setContext

public void setContext(javax.net.ssl.SSLContext context)
Sets the current SSL context.

Parameters:
context - the new SSL context
See Also:
SSLContext

getListeners

public java.util.LinkedList getListeners()
Get listeners.

Returns:
list of listeners.

setListeners

public void setListeners(java.util.LinkedList listeners)
Set the list of listeners.

Parameters:
listeners -

setProtocol

public void setProtocol(java.lang.String value)
Sets TLS/SSL protocol name.

Parameters:
value - a protocol name

setContextKeystoreProvider

public void setContextKeystoreProvider(java.lang.String provider)
Sets provider used for keystore in default context.

Parameters:
provider - The provider

setContextProtocolProvider

public void setContextProtocolProvider(java.lang.String provider)
Sets provider used for TLS protocol in default context.

Parameters:
provider - the provider

setContextAlgorithmProvider

public void setContextAlgorithmProvider(java.lang.String provider)
Sets provider used for X509 algorithm in default context.

Parameters:
provider - the provider

getContextAlgorithmProvider

public java.lang.String getContextAlgorithmProvider()
Gets provider used for X509 algorithm in default context.

Returns:
algorithm provider

getContextKeystoreProvider

public java.lang.String getContextKeystoreProvider()
Gets keystore provider used for default context. Default is null.

Returns:
keystore provider

getContextProtocolProvider

public java.lang.String getContextProtocolProvider()
Gets provider used for TLS protocol in default context. Default is null.

Returns:
protocol provider

setContextAlgorithm

public void setContextAlgorithm(java.lang.String algorithm)
Sets algorithm used for SSL communications in default context. Default is SunX509.

Parameters:
algorithm - the algorithm

getContextAlgorithm

public java.lang.String getContextAlgorithm()
Gets algorithm used for SSL communications in default context. Default is SunX509.

Returns:
algorithm

setContextProtocol

public void setContextProtocol(java.lang.String protocol)
Sets protocol used for SSL communications in default context. Default is TLS.

Parameters:
protocol - the protocol

getContextProtocol

public java.lang.String getContextProtocol()
Gets protocol used for SSL communications in default context. Default is TLS.

Returns:
protocol

getContext

public javax.net.ssl.SSLContext getContext()
Obtains the current SSL context.

Returns:
the current SSL context
See Also:
SSLContext

setDataPort

public void setDataPort(int dataPort)
Deprecated. Replaced by setDataPortRange

Sets data port for incoming active PORT connections.

Parameters:
dataPort - active port

getDataPort

public int getDataPort()
Deprecated. Replaced by getDataPortStart and getDataPortEnd

Returns current port for incoming active PORT data connections.

Returns:
active port

getDataPortEnd

public int getDataPortEnd()
Gets the data port end range for incoming non-passive (active) data connections.

Returns:
the end data port range for incoming data connections

setDataPortRange

public void setDataPortRange(int dataPortStart,
                             int dataPortEnd)
Sets the data port range for incoming non-passive (active) connections.

Parameters:
dataPortStart - start data port range for incoming connections
dataPortEnd - end data port range for incoming connections

getDataPortStart

public int getDataPortStart()
Gets the data port start range for incoming non-passive (active) data connections.

Returns:
the start data port range for incoming data connections

setDebug

public void setDebug(boolean debug)
Sets debugging state. All debug statements are reported to debug stream. Default debug stream is System.out.

Parameters:
debug - true to turn debugging on
See Also:
setDebugStream(java.io.PrintStream)

getDebug

public boolean getDebug()
Gets debugging state.

Returns:
true if debugging is on

setDebugStream

public void setDebugStream(java.io.PrintStream debugStream)
Sets PrintStream used in reporting debug statements. Default PrintStream is System.out

Parameters:
debugStream - the PrintStream to send debug statements to
See Also:
PrintStream

getDebugStream

public java.io.PrintStream getDebugStream()
Gets PrintStream used in reporting debug statements. Default PrintStream is System.out.

Returns:
the PrintStream used in reporting debug statements
See Also:
PrintStream

setDir

public void setDir(java.lang.String remoteDirectory)
            throws FtpException
Sets current directory on FTP server.

Parameters:
remoteDirectory - the remote directory
Throws:
FtpException - if an I/O or FTP error occurs.

getDir

public java.lang.String getDir()
                        throws FtpException
Gets current working directory of FTP server.

Returns:
current directory
Throws:
FtpException - if an I/O or FTP error occurs.

getDirListing

public java.util.Enumeration getDirListing(java.lang.String filter)
                                    throws FtpException
Gets file listing of files matching filter criteria. When using this method filter is passed to server and server is responsible for parsing filter. Servers may vary in how they handle these filters. For a client side filter use the getDirListingRegex method which uses regular expressions to parse results of a directory listing. Parsers are included to handle UNIX, NT and VMS directory style listings. If you are connecting to a FTP server that does not use any of these listing formats then you can optionally develop your own parser by extending the FtpFileParser class, or use some of the alternative methods for obtaining a directory listing such as the getNameListing or getDirListingAsString methods.

Parameters:
filter - the regular expression filename filter
Returns:
an Enumeration of FtpFile objects
Throws:
FtpException - if an I/O or FTP error occurs.
See Also:
FtpFile, getDirListingAsString(String), getDirListingRegex(String), getNameListing(java.lang.String), FtpFileParser, UnixParser, NTParser, VMSParser

getDirListing

public java.util.Enumeration getDirListing()
                                    throws FtpException
Gets directory listing from FTP server. Parsers are included to handle UNIX, NT and VMS directory style listings. If you are connecting to a FTP server that does not use any of these listing formats then you can optionally develop your own parser by extending the FtpFileParser class, or use some of the alternative methods for obtaining a directory listing such as the getNameListing or getDirListingAsString methods.

Returns:
an Enumeration of FtpFile objects
Throws:
FtpException - if an I/O or FTP error occurs.
See Also:
FtpFile, getDirListingAsString(String), getNameListing(java.lang.String), FtpFileParser, UnixParser, NTParser, VMSParser

getDirListingAsString

public java.lang.String getDirListingAsString(java.lang.String filter)
                                       throws FtpException
Gets raw directory listing of files matching filter criteria. When using this method filter is passed to server and server is responsible for parsing filter. Servers may vary in how they handle these filters. For a client side filter use the getDirListingRegex method which uses regular expressions to parse results of a directory listing.

Parameters:
filter - a regular expression filename filter
Returns:
a directory listing
Throws:
FtpException - if an I/O or FTP error occurs.
See Also:
getDirListingRegex(String)

getDirListingRegex

public java.util.Enumeration getDirListingRegex(java.lang.String filter)
                                         throws FtpException
Gets directory listing from FTP server returning only file and directory names that match the regular expression. For example, to list all files with extension .java or .class the regex value should be ".+\\.(?:java|class)".

Parameters:
filter - regular expression used to obtain the file list
Returns:
file list which matches the regular expression
Throws:
FtpException - if an I/O or protocol error occurs.

getDirListingAsString

public java.lang.String getDirListingAsString()
                                       throws FtpException
Gets raw directory listing of files on FTP server.

Returns:
a directory listing
Throws:
FtpException - if an I/O or FTP error occurs.

setDirUp

public void setDirUp()
              throws FtpException
Sets current directory on FTP server to parent directory.

Throws:
FtpException - if an I/O or FTP error occurs.

setDiskEncoding

public void setDiskEncoding(java.lang.String encoding)
Sets character set used when reading data from disk for ASCII file transfer.

Parameters:
encoding - the character encoding to be used

getDiskEncoding

public java.lang.String getDiskEncoding()
Gets character encoding used when reading data from disk for ASCII file transfer.

Returns:
the character encoding to be used

setEnabledCiphers

public void setEnabledCiphers(java.lang.String[] enabledCiphers)
Sets user-defined enabled SSL cipher suites.

Parameters:
enabledCiphers - enabled SSL cipher suites or null for using system-default cipher suites set

getEnabledCiphers

public java.lang.String[] getEnabledCiphers()
Returns user-defined enabled SSL cipher suites.

Returns:
user-defined enabled SSL cipher suites or null if system-default cipher suites are used

setErrorOnSizeCommand

public void setErrorOnSizeCommand(boolean error)
Sets whether an exception should be thrown when downloading a file and server does not support SIZE command. The SIZE command is used to obtain the length of remote file for use in firing progress events. Default is false.

Parameters:
error - true if exception should be thrown, false otherwise

getErrorOnSizeCommand

public boolean getErrorOnSizeCommand()
Gets whether an exception should be thrown when downloading a file and server does not support SIZE command. The SIZE command is used to obtain the length of remote file for use in firing progress events. Default is false.

Returns:
true if exception is thrown when SIZE command is not supported an exception when it caused an error, false the error will be ignored.

isFeatureSupported

public boolean isFeatureSupported(java.lang.String command)
Looks for the command argument into the server features list to validate if it is supported

Parameters:
command - The feature will be searched
Returns:
true if the command is found into the server feature list; false otherwise

getFeatures

public java.util.Enumeration getFeatures()
                                  throws FtpException
Returns supported server features.

Returns:
an Enumeration of features strings
Throws:
FtpException - if an error occurs

setFileModificationTime

public void setFileModificationTime(java.lang.String remoteName,
                                    java.util.Date date)
                             throws FtpException
Sets the file modification time with a new value. This command is not specified in RFC 959 and it is not support by many Ftp servers.

Parameters:
remoteName - File will be modified its modification time.
date - The new modification time
Throws:
FtpException - If an error occurs

setFileCreationTime

public void setFileCreationTime(java.lang.String remoteName,
                                java.util.Date date)
                         throws FtpException
Sets file creation time with a new value. This command is not specified in RFC 959 and it is not support by many Ftp servers.

Parameters:
remoteName - File will be modified its creation time.
date - The new creation time
Throws:
FtpException - If an error occurs.

setFileTimestamp

public void setFileTimestamp(java.lang.String remoteName,
                             java.util.Date dateFile)
                      throws FtpException
Sets date/timestamp of remote file from FTP server. This feature is not supported by RFC-959 so may not work on all FTP servers.

Parameters:
remoteName - the remote file
dateFile - the date/timestamp of remote file
Throws:
FtpException - if an I/O or FTP error occurs.

getFileTimestamp

public java.util.Date getFileTimestamp(java.lang.String remoteFile)
                                throws FtpException
Gets date/timestamp of remote file from FTP server. This feature is not supported by RFC-959 so may not work on all FTP servers.

Parameters:
remoteFile - the remote file
Returns:
date the date/timestamp of remote file
Throws:
FtpException - if an I/O or FTP error occurs.

getFilesize

public long getFilesize(java.lang.String remoteFile)
                 throws FtpException
Gets filesize of remote file from FTP server as represented in ASCII. This feature is not supported by RFC-959 so may not work on all FTP servers. For larger files it may take some time to return as server will often convert file to ASCII before returning a filesize.

Parameters:
remoteFile - the remote file
Returns:
filesize in bytes
Throws:
FtpException - if an I/O or FTP error occurs.

setFtpFileParser

public void setFtpFileParser(FtpFileParser parser)
Sets the FtpFileParser used to parse directory listing returned when invoking Ftps#getDirListing method. If FtpFileParser is null upon establishing connection the Ftps class will attempt to determine the proper FtpFileParser based on information retrieved from the FTP server. If the FtpFileParser is null and cannot be determined otherwise then by default an instance of UnixParser will be used. Upon disconnecting from FTP server the FtpFileParser will be reset to null.

Parameters:
parser - a FtpFileParser instance
See Also:
FtpFileParser, UnixParser, NTParser, VMSParser

getFtpFileParser

public FtpFileParser getFtpFileParser()
Gets the FtpFileParser used to parse directory listing returned when invoking Ftp#getDirListing method. If FtpFileParser is null upon establishing connection the Ftps class will attempt to determine the proper FtpFileParser based on information retrieved from the FTP server. If the FtpFileParser is null and cannot be determined then by default an instance of UnixParser will be used. Upon disconnecting from FTP server the FtpFileParser will be reset to null.

Returns:
a FtpFileParser or null if no FtpFileParser has been defined.
See Also:
FtpFileParser, UnixParser, NTParser, VMSParser

setHostname

public void setHostname(java.lang.String host)
Sets hostname of FTP server.

Parameters:
host - the hostname or IP address of FTP server

setHostname

public void setHostname(java.lang.String host,
                        boolean ensureConnected)
Sets the hostname of FTP Server.

Parameters:
host -
ensureConnected -

getHostname

public java.lang.String getHostname()
Gets hostname of FTP server.

Returns:
hostname

getInputStream

public java.io.InputStream getInputStream(java.lang.String remoteFile,
                                          long offset)
                                   throws java.io.IOException
Gets a InputStream from FTP server for the purposes of downloading a file.

Parameters:
remoteFile - remote file name to download
offset - file offset
Returns:
an InputStream
Throws:
java.io.IOException - if an I/O or FTP error occurs.

setLinger

public void setLinger(int linger)
Sets the linger time for closing data sockets.

Parameters:
linger - the linger value in milliseconds

getLinger

public int getLinger()
Gets the linger time for closing data sockets.

Returns:
the linger time in milliseconds

setLocalDir

public void setLocalDir(java.io.File localDirectory)
Sets local directory to be used in FTP session. Downloads will be stored relative to local directory. Uploads are performed relative to current local directory.

Parameters:
localDirectory - the local directory

getLocalDir

public java.io.File getLocalDir()
Gets local directory to be used in FTP session. Downloads will be stored relative to local directory. Uploads are performed relative to current local directory.

Returns:
the local directory

getLocalDirListing

public java.util.Enumeration getLocalDirListing()
Gets local directory listing.

Returns:
an Enumeration of File

getMachineDirListing

public java.util.Enumeration getMachineDirListing(java.lang.String dirname,
                                                  java.lang.String filter)
                                           throws FtpException
Gets file listing of specified directory using MLSD command. This command is not RFC-959 compliant so may not be supported by all FTP servers.

Parameters:
dirname - directory name or an empty String for current directory
filter - a regular expression e.g. ".*\\.txt" for all files ending in .txt extension
Returns:
an Enumeration of FtpFile
Throws:
FtpException - if an I/O or FTP error occurs
See Also:
FtpFile

getMachineDirListing

public java.util.Enumeration getMachineDirListing(java.lang.String dirname)
                                           throws FtpException
Gets directory listing using MLSD command. This command is not RFC-959 compliant so may not be supported by all FTP servers.

Parameters:
dirname - the directory name or an empty String to use current directory
Returns:
an Enumeration of FtpFile
Throws:
FtpException - if an I/O or FTP error occurs

getMachineFileListing

public FtpFile getMachineFileListing(java.lang.String filename)
                              throws FtpException
Gets the file description for the specified filename using MLST command. This command is not RFC-959 compliant so may not be supported by all FTP servers.

Parameters:
filename - target filename or an empty String for current diectory
Returns:
an FtpFile
Throws:
FtpException - if an error occurs
See Also:
FtpFile

getMode

public int getMode()
Gets data transfer mode for current session. Default mode is Ftps.AUTO where 0 = Ftps.AUTO, 1 = Ftps.ASCII, 2 = Ftp.BINARY

Returns:
the data transfer mode
See Also:
AUTO, BINARY, ASCII

getNameListing

public java.util.Enumeration getNameListing(java.lang.String filter)
                                     throws FtpException
Gets directory listing of files on FTP server matching filter criteria and using NLST command. Filter is any expression supported by server. For example *.txt may return all files containing a .txt filename extension.

Parameters:
filter - the filename filter
Returns:
an Enumeration of String where each item represents a file or directory name
Throws:
FtpException - if an I/O or FTP related error occurs

getNameListing

public java.util.Enumeration getNameListing()
                                     throws FtpException
Gets directory listing of files on FTP server using NLST command.

Returns:
an Enumeration of String where each item represents a file or directory name
Throws:
FtpException - if an I/O or FTP related error occurs

getOutputStream

public java.io.OutputStream getOutputStream(java.lang.String fileName,
                                            long off,
                                            boolean append)
                                     throws java.io.IOException
Gets an OutputStream from FTP server for the purposes of uploading a file.

Parameters:
fileName - the remote filename to store file as
off - file offset
append - true to append to remote file on FTP server, false otherwise
Returns:
an OutputStream
Throws:
java.io.IOException - if an FTP error occurs.

setNATAddress

public void setNATAddress(java.lang.String ipAddress)
                   throws FtpException
Sets a NAT address which will be used for PASV file transfers. For active (non-passive) file transfer see the setPortAddress and setDataPortRange methods.

Parameters:
ipAddress - the IP address of NAT server
Throws:
FtpException - if an I/O or FTP error occurs
See Also:
setDataPortRange(int, int), setPortAddress(String)

getNATAddress

public java.lang.String getNATAddress()
Get the NAT address.

Returns:
address

setPassive

public void setPassive(boolean passive)
Sets whether passive mode should be used. Default is true.

Parameters:
passive - true to use passive transfer, false otherwise

getPassive

public boolean getPassive()
Gets whether passive mode should be used. Default is true.

Returns:
true if passive mode is enabled, false otherwise

setPassword

public void setPassword(java.lang.String password)
Sets password of FTP user.

Parameters:
password - the password of FTP user

getPassword

public java.lang.String getPassword()
Returns current FTP user password.

Returns:
current FTP password.

setPort

public void setPort(int port)
Sets port of FTP server. Default value is 21.

Parameters:
port - the port of FTP server

getPort

public int getPort()
Gets port of FTP server. Default value is 21.

Returns:
port

setPortAddress

public void setPortAddress(java.lang.String string)
Sets the external address to use when using active connections using the PORT command.

Parameters:
string - an IP address

getPortAddress

public java.lang.String getPortAddress()
Gets the external address to use when using active connections. using the PORT command.

Returns:
the external IP address

setProtectionLevel

public void setProtectionLevel(char level)
                        throws FtpException
Changes the protection level.

Parameters:
level - a protection level of P (Protected) or C (Clear)
Throws:
FtpException - if a FTP or I/O related error occurs

getResponseCode

public int getResponseCode()
Gets response code from last FTP command.

Returns:
response code or -1 if code cannot be determined

setSendBufferSize

public void setSendBufferSize(int sendBufferSize)
Sets the send buffer size option of the ftps connection.

Parameters:
sendBufferSize - Send buffer size.

setReceiveBufferSize

public void setReceiveBufferSize(int receiveBufferSize)
Sets the receive buffer size option of the ftps connection.

Parameters:
receiveBufferSize - Receive buffer size.

setServerCertificates

public void setServerCertificates(java.security.KeyStore keystore)
                           throws FtpException
Sets optional server certificate to be used during authentication.

Parameters:
keystore - the keystore containing server certificate
Throws:
FtpException - if an error occurs reading keystore

setServerCertificates

public void setServerCertificates(java.lang.String filename,
                                  java.lang.String password)
                           throws FtpException
Sets optional server certificate to be used during authentication. Default expected keystore format is JKS format. Existing certificate may be imported into keystore using the keytool utility provided in the Sun JDK.

Example:

 keytool.exe -import -file x509.cer -keystore your_store_name
 

The example above imports the certificate x509.cer into a keystore named your_store_name

Parameters:
filename - the keystore file containing the server certificate
password - the keystore password
Throws:
FtpException - if an I/O error occurs

setServerCertificates

public void setServerCertificates(java.lang.String filename,
                                  java.lang.String password,
                                  java.lang.String storetype)
                           throws FtpException
Sets optional server certificate to be used during authentication. Default expected keystore format is JKS format. Existing certificate may be imported into keystore using the keytool utility provided in the Sun JDK.

Example:

 keytool.exe -import -file x509.cer -keystore your_store_name
 

The example above imports the certificate x509.cer into a keystore named your_store_name

Parameters:
filename - the keystore file containing the server certificate
password - the keystore password
storetype - the keystore type valid values include jks and pkcs12
Throws:
FtpException - if an I/O error occurs

setShutdownCCC

public void setShutdownCCC(boolean shutdownCCC)
Sets whether SSL connection should be shutdown after successfully issuing CCC command. Default is true.

Parameters:
shutdownCCC - true to shutdown, false otherwise

getShutdownCCC

public boolean getShutdownCCC()
Gets whether SSL connection should be shutdown after successfully issuing CCC command. Default is true.

Returns:
true to shutdown, false otherwise

getSystemType

public java.lang.String getSystemType()
                               throws FtpException
Gets the system type of remote FTP server.

Returns:
system type
Throws:
FtpException - if an I/O or FTP error occurs.

setTimeout

public void setTimeout(int timeout)
Sets the timeout for opening connection to FTP server.

Parameters:
timeout - the timeout in milliseconds

getTimeout

public int getTimeout()
Gets the timeout for opening connection to FTP server.

Returns:
timeout in milliseconds

setUsername

public void setUsername(java.lang.String user)
Sets username of FTP user.

Parameters:
user - the username of FTP user

getUsername

public java.lang.String getUsername()
Gets username of FTP user.

Returns:
username

setUseEPSV

public void setUseEPSV(boolean useEPSV)
Sets whether to use EPSV or PASV command for data tranfers. Default is to use PASV command.

Parameters:
useEPSV - true to use EPSV command, false to use PASV command.

getUseEPSV

public boolean getUseEPSV()
Gets whether to use EPSV or PASV command for data tranfers. Default is false, meaning PASV command will be used.

Returns:
true to use EPSV command, false to use PASV command.

setUseEPRT

public void setUseEPRT(boolean useEPRT)
Sets whether to use EPRT or PORT command for data tranfers. Default is to use PORT command.

Parameters:
useEPSV - true to use EPSV command, false to use PASV command.

getUseEPRT

public boolean getUseEPRT()
Gets whether to use EPSV or PORT command for data tranfers. Default is false, meaning PORT command will be used.

Returns:
true to use EPRT command, false to use PORT command.

setWireEncoding

public void setWireEncoding(java.lang.String encoding)
Sets character set used when issuing commands and transferring files in ASCII mode.

Parameters:
encoding - the character encoding to be used

getWireEncoding

public java.lang.String getWireEncoding()
Gets character encoding used when issuing commands and reading files from FTP server in ASCII mode.

Returns:
the character encoding to be used

addFtpsCertificateVerifier

public void addFtpsCertificateVerifier(FtpsCertificateVerifier listener)
Deprecated. see setFtpsCertificateVerifier(FtpsCertificateVerifier)

Sets FTPS certificate verifier.

Parameters:
listener - the listener to add
See Also:
FtpsCertificateVerifier

setFtpsCertificateVerifier

public void setFtpsCertificateVerifier(FtpsCertificateVerifier listener)
Sets FTPS certificate verifier.

Parameters:
listener - the listener to add
See Also:
FtpsCertificateVerifier

getFtpsCertificateVerifier

public FtpsCertificateVerifier getFtpsCertificateVerifier()
Gets FTPS certificate verifier.

Returns:
the FtpsCertificateVerifier for this instance
See Also:
FtpsCertificateVerifier

addFtpListener

public void addFtpListener(FtpListener listener)
Adds FTP event listener.

Parameters:
listener - the listener to add
See Also:
FtpListener

changePassword

public void changePassword(java.lang.String oldPassword,
                           java.lang.String newPassword)
                    throws FtpException
Changes the password for current account. This feature is not supported by RFC-959 so may not work on all FTP servers.

Parameters:
oldPassword - The old password.
newPassword - The new password.
Throws:
FtpException - FtpException if underlayed I/O or FTP error occurs.

checksum

public boolean checksum(java.io.File localfile,
                        java.lang.String remoteFile)
                 throws FtpException
Compares checksum of the local and remote files.

Parameters:
localfile - local file
remoteFile - remote file
Returns:
true if checksums are equal; false otherwise
Throws:
FtpException - if an error occurs

checksum

public boolean checksum(byte[] data,
                        java.lang.String remoteFile)
                 throws FtpException
Compares checksum of the local data and remote file.

Parameters:
data - data
remoteFile - remote file
Returns:
true if checksum are equal; false otherwise
Throws:
FtpException - if an error occurs

clearCommandChannel

public void clearCommandChannel()
                         throws FtpException
Clears command channel.

Throws:
FtpException - if an I/O error occurs

connect

public void connect()
             throws FtpException
Connects to FTP server and performs login. Login is made using username, password and optional account.

Throws:
FtpException - if an I/O or FTP error occurs.
See Also:
setUsername(java.lang.String), setPassword(java.lang.String), setAccount(String)

connect

public void connect(boolean login)
             throws FtpException
Connects to FTP server and optionally performs login.

Parameters:
login - true to login false otherwise
Throws:
FtpException - if an I/O or FTP error occurs

getServerFeaturesCommandSuccessful

public boolean getServerFeaturesCommandSuccessful()

deleteDir

public void deleteDir(java.lang.String remoteDirectory,
                      boolean recurse)
               throws FtpException
Deletes directory from FTP server. If the directory cannot be deleted because it is not empty the recurse parameter will be used to determine if files and subdirectories within directory should be removed.

Parameters:
remoteDirectory - the directory to remove
recurse - true if it should delete files and subdirectories within directory
Throws:
FtpException - if an I/O or FTP error occurs.

deleteDir

public void deleteDir(java.lang.String remoteDirectory)
               throws FtpException
Deletes directory from FTP server.

Parameters:
remoteDirectory - the directory to remove
Throws:
FtpException - if an I/O or FTP error occurs.

deleteFile

public void deleteFile(java.lang.String remoteFile)
                throws FtpException
Deletes remote file from FTP server.

Parameters:
remoteFile - name of file to delete
Throws:
FtpException - if an I/O or FTP error occurs.

disconnect

public void disconnect()
Quits the FTP session and disconnects from the FTP server.


download

public void download(java.io.OutputStream out,
                     java.lang.String remoteFile)
              throws FtpException
Downloads file from FTP server and writes contents to provided OutputStream. Closure of OutputStream is responsibility of programmer.

Parameters:
out - the OutputStream to write download to
remoteFile - remote filename
Throws:
FtpException - if an I/O or FTP error occurs.

download

public java.io.File download(java.lang.String localFile,
                             java.lang.String remoteFile)
                      throws FtpException
Downloads file from FTP server. Downloads are stored relative to current local directory.

Parameters:
localFile - destination filename relative to current local directory, NOT an absolute path
remoteFile - remote filename
Returns:
File the file downloaded
Throws:
FtpException - if an I/O or FTP error occurs.
See Also:
setLocalDir(java.io.File)

download

public java.io.File download(java.lang.String remoteFile)
                      throws FtpException
Downloads file from FTP server. Downloads are stored relative to current local directory.

Parameters:
remoteFile - the file to download
Returns:
File the file downloaded
Throws:
FtpException - if an I/O or FTP error occurs.
See Also:
setLocalDir(java.io.File)

downloadDir

public void downloadDir(java.lang.String remoteDir)
                 throws FtpException
Downloads remote directory and contents recursively from FTP server. Downloads are stored relative to current local directory.

Parameters:
remoteDir - the directory to download
Throws:
FtpException - if an I/O or FTP error occurs.
See Also:
setLocalDir(java.io.File)

downloadDir

public void downloadDir(java.lang.String remoteDir,
                        int retryLimit,
                        boolean performChecksum)
                 throws FtpException
Downloads remote directory and contents recursively from FTP server. Downloads are stored relative to current local directory.

Parameters:
remoteDir - the remote directory to download
retryLimit - the retry limit if download fails
performChecksum - whether to perform checksum on files downloaded, not supported by all FTP servers
Throws:
FtpException - if an I/O or FTP error occurs.

downloadDir

public void downloadDir(java.lang.String remoteDir,
                        int retryLimit,
                        int retryInterval,
                        boolean performChecksum)
                 throws FtpException
Downloads remote directory and contents recursively from FTP server. Downloads are stored relative to current local directory.

Parameters:
remoteDir - the remote directory to download
retryLimit - the retry limit if download fails
retryInterval - the retry interval in seconds
performChecksum - whether to perform checksum on files downloaded, not supported by all FTP servers
Throws:
FtpException - if an I/O or FTP error occurs.

downloadDir

public void downloadDir(java.lang.String remoteDir,
                        int retryLimit,
                        boolean performChecksum,
                        int threadCount)
                 throws FtpException
Download directory.

Parameters:
remoteDir -
retryLimit -
performChecksum -
threadCount -
Throws:
FtpException

downloadDir

public void downloadDir(java.lang.String remoteDir,
                        int retryLimit,
                        int retryInterval,
                        boolean performChecksum,
                        int threadCount)
                 throws FtpException
Downloads remote directory and contents from FTP server. Downloads are stored relative to current local directory.

Parameters:
remoteDir - the directory to download
retryLimit - retry limit if an error occurs
performChecksum - whether to perform checksum after each download, not supported by all FTP servers
Throws:
FtpException - if an I/O or FTP error occurs.
See Also:
setLocalDir(java.io.File)

abortDownloadThreads

public void abortDownloadThreads()
Abort all download threads.


interrupt

public void interrupt()
Interrupts the current data transfer and sets interrupted flag to true. After invoking this method you must reset the interrupted flag to false before transferring any files.

See Also:
reset()

interrupted

public boolean interrupted()
Checks if transfer process was interrupted.

Returns:
true if transfer process was interrupted.

issueCommand

public java.lang.String issueCommand(java.lang.String cmd)
                              throws FtpException
Issues the command to FTP server.

Parameters:
cmd - the command to issue
Returns:
response code
Throws:
FtpException - if an I/O or FTP error occurs

issueCommandCheck

public java.lang.String issueCommandCheck(java.lang.String cmd)
                                   throws FtpException
Issues command to FTP server.

Parameters:
cmd - the command to issue
Returns:
response code
Throws:
FtpException - if an I/O or FTP error occurs

login

public void login()
           throws FtpException
Logs into FTP server after establishing a connection. This method should only be used if login is not performed automatically during Ftps#connect.

Throws:
FtpException - if an I/O or FTP error occurs
See Also:
connect()

makeDir

public void makeDir(java.lang.String newDirectory)
             throws FtpException
Makes directory on FTP server.

Parameters:
newDirectory - name of directory to make
Throws:
FtpException - if an I/O or FTP error occurs.

makeDirRecursive

public void makeDirRecursive(java.lang.String newDirectory)
                      throws FtpException
Makes directory on FTP server, creating subdirectories if necessary.

Parameters:
newDirectory - full path of directory to make
Throws:
FtpException - if an I/O or FTP error occurs

makeLocalDir

public java.io.File makeLocalDir(java.lang.String directoryName)
Creates local directory. Directory is relative to current local directory.

Parameters:
directoryName - name of directory
Returns:
the directory
See Also:
getLocalDir()

mdelete

public void mdelete(java.lang.String filter)
             throws FtpException
Deletes multiple files matching regular in FTP server's current directory. For example, to delete all files with .txt extension use the regular expression ".*\\.txt".

Parameters:
filter - the regular expression filter to use
Throws:
FtpException - if an I/O or FTP error occurs.

mdownload

public void mdownload(java.util.Enumeration fileNames)
               throws FtpException
Downloads specified files in current working remote directory from FTP server to local directory. Do not use this method to download a directory, see downloadDir(String) method instead. Downloads are stored relative to current local directory.

Parameters:
fileNames - filenames of files to download
Throws:
FtpException - if an I/O or FTP error occurs.
See Also:
setLocalDir(java.io.File), downloadDir(String)

mdownload

public void mdownload(java.lang.String filter)
               throws FtpException
Downloads multiple files matching regular expression from FTP server's current directory. Downloads are stored relative to current local directory. For example to download all files ending with extension .txt use the regular expression ".*\\.txt".

Parameters:
filter - the regular expression filter to use
Throws:
FtpException - if an I/O or FTP error occurs.
See Also:
setLocalDir(java.io.File), downloadDir(java.lang.String)

mupload

public void mupload(java.util.Enumeration fileNames)
             throws FtpException
Uploads multiple files to FTP server Uploads are performed relative to current local directory.

Parameters:
fileNames - filenames of files to upload
Throws:
FtpException - if an I/O or FTP error occurs.
See Also:
setLocalDir(java.io.File)

mupload

public void mupload(java.lang.String filter)
             throws FtpException
Uploads multiple files matching regular expression to FTP server's current directory. Uploads are performed relative to current local directory. For example, to upload all files with extension .txt use the regular expression ".*\\.txt".

Parameters:
filter - the regular expression filter to use
Throws:
FtpException - if an I/O or FTP error occurs.
See Also:
setLocalDir(java.io.File)

noop

public java.lang.String noop()
                      throws FtpException
Sends a NOOP (No Operation) command to FTP server. This is useful in helping to prevent a lost connection due to inactivity.

Returns:
the response to the NOOP command
Throws:
FtpException - if an I/O or FTP error occurs

readResponse

public java.lang.String readResponse()
                              throws FtpException
Reads response from FTP server. Normally this method should not be invoked as this is done automatically. This should be used only in cases where manual reading of response is necessary.

Returns:
the response
Throws:
FtpException - if an I/O or FTP related error occurs.

removeFtpListener

public void removeFtpListener(FtpListener listener)
Removes specified FTP event listener.

Parameters:
listener - the listener to remove
See Also:
FtpListener

renameFile

public void renameFile(java.lang.String remoteFile,
                       java.lang.String newFile)
                throws FtpException
Renames remote file on FTP server.

Parameters:
remoteFile - name of file to rename
newFile - new name of file
Throws:
FtpException - if an I/O or FTP error occurs.

reset

public void reset()
Resets the interrupted flag to false. This method should be invoked if you have interrupted a transfer using the Ftps#interrupt method and wish to resume transfering files.

See Also:
interrupt()

resumeDownload

public java.io.File resumeDownload(java.lang.String remoteFile,
                                   long off)
                            throws FtpException
Resumes download of file from FTP server.

Parameters:
remoteFile - the file to download
off - file offset in bytes
Returns:
the file downloaded
Throws:
FtpException - if an I/O or FTP error occurs.

resumeDownload

public java.io.File resumeDownload(java.lang.String localFile,
                                   java.lang.String remoteFile,
                                   long off)
                            throws FtpException
Resumes download of file from FTP server.

Parameters:
localFile - local file name
remoteFile - the file to download
off - file offset in bytes
Returns:
the file downloaded
Throws:
FtpException - if an I/O or FTP error occurs.

resumeUpload

public void resumeUpload(java.io.File localFile,
                         long off)
                  throws FtpException
Resumes upload of file to FTP server.

Parameters:
localFile - the local file to upload
off - file offset in bytes
Throws:
FtpException - if an I/O or FTP error occurs.

resumeUpload

public void resumeUpload(java.io.File localFile,
                         java.lang.String remoteFile,
                         long off)
                  throws FtpException
Resumes upload of file to FTP server.

Parameters:
localFile - the local file to upload
remoteFile - the destination file on FTP server
off - the local file offset in bytes
Throws:
FtpException - if an I/O or FTP related error occurs

resumeUpload

public void resumeUpload(java.lang.String localFile,
                         long off)
                  throws FtpException
Resumes upload of file to FTP server.

Parameters:
localFile - the local file to upload
off - file offset in bytes
Throws:
FtpException - if an I/O or FTP error occurs.

resumeUpload

public void resumeUpload(java.lang.String localFile,
                         java.lang.String remoteFile,
                         long off)
                  throws FtpException
Resumes upload of file to FTP server.

Parameters:
localFile - the local file to upload
remoteFile - the remote destination file on FTP server
off - the local file offset in bytes
Throws:
FtpException - if an I/O or FTP related error occurs

upload

public void upload(java.io.File localFile,
                   java.lang.String remoteFile,
                   boolean append)
            throws FtpException
Uploads file to FTP server. If localFile is a directory then directory and entire contents are uploaded.

Parameters:
localFile - the local file to upload
remoteFile - the destination of upload
append - true to append to remote file on FTP server, false otherwise
Throws:
FtpException - if an I/O or FTP related error occurs

upload

public void upload(java.io.File localFile,
                   boolean append)
            throws FtpException
Uploads file to FTP server. If localFile is a directory then directory and entire contents are uploaded.

Parameters:
localFile - the local file to upload
append - true to append to remote file on FTP server, false otherwise
Throws:
FtpException - if an I/O or FTP related error occurs

upload

public void upload(java.io.File localFile,
                   java.lang.String remoteFile)
            throws FtpException
Uploads file to FTP server. If localFile is a directory then directory and entire contents are uploaded.

Parameters:
localFile - the local file to upload
remoteFile - the destination of upload
Throws:
FtpException - if an I/O or FTP related error occurs

upload

public void upload(java.io.File localFile)
            throws FtpException
Uploads file to FTP server. If localFile is a directory then directory and entire contents are uploaded.

Parameters:
localFile - the local file to upload
Throws:
FtpException - if an I/O or FTP related error occurs

upload

public void upload(java.lang.String extension,
                   java.io.File localFile)
            throws FtpException
Uploads file to FTP server using temporary extension, then renames file back to original name once uploaded.

Parameters:
extension - the temporary extension to use when uploading files prior to renaming them or null to use default extension
localFile - the local file to upload
Throws:
FtpException - if an I/O or FTP related error occurs

upload

public void upload(java.lang.String localFile,
                   java.lang.String remoteFile,
                   boolean append)
            throws FtpException
Uploads file to FTP server. Uploads are performed relative to current local directory.

Parameters:
localFile - the local file to upload
remoteFile - the destination filename of upload
append - true to append to remote file on FTP server, false otherwise
Throws:
FtpException - if an I/O or FTP error occurs.
See Also:
setLocalDir(java.io.File)

upload

public void upload(java.lang.String localFile,
                   java.lang.String remoteFile)
            throws FtpException
Uploads file to FTP server. Uploads are performed relative to current local directory.

Parameters:
localFile - the local file to upload
remoteFile - the destination filename of upload
Throws:
FtpException - if an I/O or FTP error occurs.
See Also:
setLocalDir(java.io.File)

upload

public void upload(java.lang.String localFile,
                   boolean append)
            throws FtpException
Uploads file to FTP server. Uploads are performed relative to current local directory.

Parameters:
localFile - the local file to upload
append - true to append to remote file on FTP server, false otherwise
Throws:
FtpException - if an I/O or FTP error occurs.
See Also:
setLocalDir(java.io.File)

upload

public void upload(java.lang.String localFile)
            throws FtpException
Uploads file to FTP server. Uploads are performed relative to current local directory.

Parameters:
localFile - the local file to upload
Throws:
FtpException - if an I/O or FTP error occurs.
See Also:
setLocalDir(java.io.File)

upload

public void upload(byte[] data,
                   java.lang.String remoteFile,
                   boolean append)
            throws FtpException
Uploads file to FTP server where contents of file is not on disk but in memory.

Parameters:
data - the raw contents of the file to upload
remoteFile - the filename to store file as on FTP server
append - true to append to remote file on FTP server, false otherwise
Throws:
FtpException - if an I/O or FTP related error occurs

upload

public void upload(byte[] data,
                   java.lang.String remoteFile)
            throws FtpException
Uploads file to FTP server where contents of file is not on disk but in memory.

Parameters:
data - the raw contents of the file to upload
remoteFile - the filename to store file as on FTP server
Throws:
FtpException - if an I/O or FTP related error occurs

upload

public void upload(java.io.InputStream input,
                   java.lang.String remoteFile,
                   boolean append)
            throws FtpException
Uploads contents of InputStream to FTP server.

Parameters:
input - the InputStream to read from
remoteFile - the destination of upload
append - true if to append to remote destination, false otherwise
Throws:
FtpException - if an I/O or FTP error occurs.

upload

public void upload(java.io.InputStream input,
                   java.lang.String remoteFile)
            throws FtpException
Uploads contents of InputStream to FTP server.

Parameters:
input - the InputStream to read from
remoteFile - the destination of upload
Throws:
FtpException - if an I/O or FTP error occurs.

uploadDir

public void uploadDir(java.io.File localDir)
               throws FtpException
Uploads local directory and contents recursively to FTP server. Uploads are stored relative to current remote directory.

Parameters:
localDir - the directory to upload
Throws:
FtpException - if an I/O or FTP error occurs.

uploadDir

public void uploadDir(java.io.File localDir,
                      java.lang.String extension)
               throws FtpException
Uploads local directory and contents recursively to FTP server. Uploads are stored relative to current remote directory.

Parameters:
localDir - the directory to upload
extension - the temporary extension to use when uploading files prior to renaming them or null to use default extension
Throws:
FtpException - if an I/O or FTP error occurs.

uploadDir

public void uploadDir(java.io.File localDir,
                      int retryLimit,
                      boolean performChecksum)
               throws FtpException
Uploads local directory and contents to FTP server. Uploads are stored relative to current remote directory.

Parameters:
localDir - the directory to upload
retryLimit - retry limit if upload fails
performChecksum - whether to perform checksum after upload, not supported by all FTP servers
Throws:
FtpException - if an I/O or FTP error occurs.

uploadDir

public void uploadDir(java.io.File localDir,
                      int retryLimit,
                      boolean performChecksum,
                      java.lang.String extension)
               throws FtpException
Uploads local directory and contents to FTP server. Uploads are stored relative to current remote directory.

Parameters:
localDir - the directory to upload
retryLimit - retry limit if upload fails
performChecksum - whether to perform checksum, not supported by all FTP servers
extension - the temporary extension to use prior to renaming files after upload
Throws:
FtpException - if an I/O or FTP error occurs.

uploadDir

public void uploadDir(java.io.File localDir,
                      int retryLimit,
                      boolean performChecksum,
                      java.lang.String extension,
                      int threadCount)
               throws FtpException
Uploads local directory and contents to FTP server. Uploads are stored relative to current remote directory.

Parameters:
localDir - the directory to upload
retryLimit - retry limit if upload fails
performChecksum - whether to perform checksum, not supported by all FTP servers
extension - the temporary extension to use prior to renaming files after upload
threadCount - the thread count
Throws:
FtpException - if an I/O or FTP error occurs.

uploadDir

public void uploadDir(java.io.File localDir,
                      int retryLimit,
                      int retryInterval,
                      boolean performChecksum,
                      java.lang.String extension,
                      int threadCount)
               throws FtpException
Uploads local directory and contents to FTP server. Uploads are stored relative to current remote directory.

Parameters:
localDir - the directory to upload
retryLimit - the retry limit if upload fails
performChecksum - whether to perform checksum after each upload, not supported by all FTP servers
extension - the temporary extension to use before renaming files or null to use default extension
threadCount - the number of threads to use for transferring files
Throws:
FtpException - if an I/O or FTP error occurs.

abortUploadThreads

public void abortUploadThreads()
Cancel all upload threads.


getRecursiveDirectoryFileCount

public int getRecursiveDirectoryFileCount(java.lang.String directory)
Get size of all files rescursively in a given remote directory.

Parameters:
directory - - the remote directory name
Returns:
size of files.

getRecursiveDirectorySize

public long getRecursiveDirectorySize(java.lang.String directory)
Get size of all files rescursively in a given remote directory.

Parameters:
directory - - the remote directory name
Returns:
size of files.

uploadDir

public void uploadDir(java.io.File localDir,
                      int retryLimit,
                      int retryInterval,
                      boolean performChecksum,
                      java.lang.String extension)
               throws FtpException
Uploads local directory and contents to FTP server. Uploads are stored relative to current remote directory.

Parameters:
localDir - the directory to upload
retryLimit - retry limit if upload fails
retryInterval - the retry interval in seconds
performChecksum - whether to perform checksum, not supported by all FTP servers
extension - the temporary extension to use prior to renaming files after upload
Throws:
FtpException - if an I/O or FTP error occurs.

uploadUnique

public java.lang.String uploadUnique(java.lang.String fileName)
                              throws FtpException
Uploads the file which is created in the current directory under a name unique to that directory.

Parameters:
fileName - the filename to upload
Returns:
the resulting unique filename on FTP server
Throws:
FtpException - if an I/O or FTP error occurs

uploadUnique

public java.lang.String uploadUnique(java.lang.String fileName,
                                     boolean useFilenameAsSeed)
                              throws FtpException
Uploads the file which is created in the current directory under a name unique to that directory.

Parameters:
fileName - the filename to upload
useFilenameAsSeed - whether filename should be used as seed value for generating unique filename on server
Returns:
the resulting unique filename on FTP server
Throws:
FtpException - if an I/O or FTP error occurs

uploadUnique

public java.lang.String uploadUnique(java.io.File file)
                              throws FtpException
Uploads the file which is created in the current directory under a name unique to that directory.

Parameters:
file - the file to upload
Returns:
the resulting unique filename on FTP server
Throws:
FtpException - if an I/O or FTP error occurs

uploadUnique

public java.lang.String uploadUnique(java.io.File file,
                                     boolean useFilenameAsSeed)
                              throws FtpException
Uploads the file which is created in the current directory under a name unique to that directory.

Parameters:
file - the file to upload
useFilenameAsSeed - whether filename should be used as seed value for generating unique filename on server
Returns:
the resulting unique filename on FTP server
Throws:
FtpException - if an I/O or FTP error occurs

uploadUnique

public java.lang.String uploadUnique(java.io.InputStream in,
                                     java.lang.String fileName)
                              throws FtpException
Uploads the file which is created in the current directory under a name unique to that directory.

Parameters:
in - data input stream.
fileName - the filename seed to use for determining remote filename or null not to pass filename as part of STOU command
Returns:
the resulting unique filename on FTP server
Throws:
FtpException - if an I/O or FTP error occurs

getLocalChecksum

public java.lang.String getLocalChecksum(java.io.File localFile)
                                  throws FtpException
Returns local checksum.

Parameters:
localFile - the file used to calculate local checksum
Returns:
local file checksum
Throws:
FtpException - if an error occurs

getRemoteFileChecksum

public java.lang.String getRemoteFileChecksum(java.lang.String remoteFile)
                                       throws FtpException
Returns remote file checksum.

Parameters:
remoteFile - remote file
Returns:
remote file checksum.
Throws:
FtpException - if an error occurs

getRemoteFileList

public java.util.Vector getRemoteFileList(java.lang.String remoteDir)
                                   throws FtpException
Gets all the remote files from the current directory and subdirectories.

Parameters:
remoteDir - The current remote will be consulted
Returns:
A collection of file paths.
Throws:
FtpException - If an error occurs

getAccount

public java.lang.String getAccount()
Gets optional account of FTP server. This should not be confused with username.

Returns:
account the account
See Also:
setUsername(String)

setAccount

public void setAccount(java.lang.String account)
Sets optional account of FTP server. This should not be confused with username.

Parameters:
account - the optional FTP account
See Also:
getUsername()

Secure FTP Factory

Copyright © JSCAPE LLC. 1999-2011. All Rights Reserved