edtFTPj/Free - Open-source FTP library for Java | Download


com.enterprisedt.net.ftp
Class FTPClient

java.lang.Object
  extended by com.enterprisedt.net.ftp.FTPClient
All Implemented Interfaces:
FTPClientInterface

public class FTPClient
extends java.lang.Object
implements FTPClientInterface

Supports client-side FTP. Most common FTP operations are present in this class.

Version:
$Revision: 1.133 $
Author:
Bruce Blackshaw

Field Summary
static byte CARRIAGE_RETURN
          Used for ASCII translation
protected  FTPControlSocket control
          Socket responsible for controlling the connection
protected  java.lang.String controlEncoding
          Encoding used on control socket
protected  int controlPort
          Control port number.
static java.lang.String cvsId
          Revision control id
protected  com.enterprisedt.net.ftp.internal.FTPDataSocket data
          Socket responsible for transferring the data
protected  DataChannelCallback dataChannelCallback
          Pasv callback method
protected  int dataReceiveBufferSize
          Size of data socket's receive buffer
protected  int dataSendBufferSize
          Size of data socket's send buffer
static int DEFAULT_BUFFER_SIZE
          Default transfer buffer size
static java.lang.String DEFAULT_ENCODING
          Default encoding used for control data
static java.util.Locale[] DEFAULT_LISTING_LOCALES
          Default locales
static int DEFAULT_MONITOR_INTERVAL
          Default byte interval for transfer monitor
static int DEFAULT_RETRY_COUNT
          Default number of retries for file transfers
static int DEFAULT_RETRY_DELAY
          Default retry delay in milliseconds
static int DEFAULT_TCP_BUFFER_SIZE
          Default SO_SNDBUF and SO_RCVBUF size
static int DEFAULT_TIMEOUT
          Default timeout
protected  boolean detectTransferMode
          If true, filetypes are autodetected and transfer mode changed to binary/ASCII as required
protected  DirectoryEmptyStrings dirEmptyStrings
          Matcher for directory empty
protected  boolean fileLockingEnabled
          If true, file locking is used on local downloaded files to prevent other processes corrupting them
protected  FileNotFoundStrings fileNotFoundStrings
          Matcher for permission denied
static byte[] FTP_LINE_SEPARATOR
          Used for ASCII translation
protected  java.lang.String id
          Id of instance
protected  FTPReply lastReply
          Holds the last reply from the server on the control socket
protected  FTPReply lastValidReply
          Holds the last valid reply from the server on the control socket
static byte LINE_FEED
          Used for ASCII translation
protected  FTPMessageListener messageListener
          Message listener
protected  FTPProgressMonitor monitor
          Progress monitor
protected  FTPProgressMonitorEx monitorEx
          File transfer listener
protected  long monitorInterval
          Bytes transferred in between monitor callbacks
protected  java.lang.String password
          Password cached
protected  java.net.InetAddress remoteAddr
          Address of the remote server.
protected  java.lang.String remoteHost
          Name/IP of remote host
protected  int serverWakeupInterval
          Interval in seconds in between server wakeups.
protected  BandwidthThrottler throttler
          Threshold for throttling
protected  int timeout
          Socket timeout for both data and control.
protected  int transferBufferSize
          Size of transfer buffers
protected  TransferCompleteStrings transferCompleteStrings
          Matcher for transfer complete
protected  FTPTransferType transferType
          Record of the transfer type - make the default ASCII
protected  java.lang.String user
          Username cached
 
Constructor Summary
FTPClient()
          Default constructor should now always be used together with setter methods in preference to other constructors (now deprecated).
FTPClient(java.net.InetAddress remoteAddr)
          Deprecated. use setter methods to set properties
FTPClient(java.net.InetAddress remoteAddr, int controlPort)
          Deprecated. use setter methods to set properties
FTPClient(java.net.InetAddress remoteAddr, int controlPort, int timeout)
          Deprecated. use setter methods to set properties
FTPClient(java.net.InetAddress remoteAddr, int controlPort, int timeout, java.lang.String encoding)
          Deprecated. use setter methods to set properties
FTPClient(java.lang.String remoteHost)
          Deprecated. use setter methods to set properties
FTPClient(java.lang.String remoteHost, int controlPort)
          Deprecated. use setter methods to set properties
FTPClient(java.lang.String remoteHost, int controlPort, int timeout)
          Deprecated. use setter methods to set properties
FTPClient(java.lang.String remoteHost, int controlPort, int timeout, java.lang.String encoding)
          Deprecated. use setter methods to set properties
 
Method Summary
protected  void abort()
          Abort the current action
 void account(java.lang.String accountInfo)
          Supply account information string to the server.
 void cancelResume()
          Cancel the resume.
 void cancelTransfer()
          Cancels the current transfer.
 void cdup()
          Change the remote working directory to the parent directory
 void chdir(java.lang.String dir)
          Change the remote working directory to that supplied
protected  void checkConnection(boolean shouldBeConnected)
          Checks if the client has connected to the server and throws an exception if it hasn't.
protected  FTPTransferType chooseTransferMode(java.lang.String filename)
          Switch the transfer mode if requested and if necessary
static void clearSOCKS()
          Clear SOCKS settings.
protected  void closeDataSocket(java.io.InputStream stream)
          Close stream for data socket.
protected  void closeDataSocket(java.io.OutputStream stream)
          Close stream for data socket
 void connect()
          Connects to the server at the address and port number defined in the constructor.
 boolean connected()
          Is this client connected?
 void debugResponses(boolean on)
          Deprecated. use the Logger class to switch debugging on and off
 void delete(java.lang.String remoteFile)
          Delete the specified remote file
 java.lang.String[] dir()
          List current directory's contents as an array of strings of filenames.
 java.lang.String[] dir(java.lang.String dirname)
          List a directory's contents as an array of strings of filenames.
 java.lang.String[] dir(java.lang.String dirname, boolean full)
          List a directory's contents as an array of strings.
 FTPFile[] dirDetails(java.lang.String dirname)
          List a directory's contents as an array of FTPFile objects.
 void dirDetails(java.lang.String dirname, DirectoryListCallback lister)
          List a directory's contents via a callback.
 java.lang.String executeCommand(java.lang.String command)
          Request that the remote server execute the literal command supplied.
 boolean exists(java.lang.String remoteFile)
          Deprecated. Use existsFile(String).
 boolean existsDirectory(java.lang.String remoteDirectory)
          Use to find out if a directory exists or not.
 boolean existsFile(java.lang.String remoteFile)
          Use to find out if a file exists or not.
 java.lang.String[] features()
          Get the server supplied features
 FTPFile fileDetails(java.lang.String name)
          Uses the MLST command to find out details about the named file.
protected  void forceResumeOff()
          Force the resume flag off.
 void get(java.io.OutputStream destStream, java.lang.String remoteFile)
          Get data from the FTP server.
 byte[] get(java.lang.String remoteFile)
          Get data from the FTP server.
 void get(java.lang.String localPath, java.lang.String remoteFile)
          Get data from the FTP server.
 int getActiveHighPort()
          Get the upper limit of the port range for active mode.
 java.lang.String getActiveIPAddress()
          Get the active IP address that is set.
 int getActiveLowPort()
          Get the lower limit of the port range for active mode.
static java.lang.String getBuildTimestamp()
          Get the build timestamp
 FTPConnectMode getConnectMode()
           
 java.lang.String getControlEncoding()
          Get the encoding used for the control connection
 int getControlPort()
          Deprecated. Use FTPClientInterface.getRemotePort() instead.
 int getDataReceiveBufferSize()
          Deprecated. see getNetworkBufferSize()
 int getDataSendBufferSize()
          Deprecated. see getNetworkBufferSize()
 int getDeleteCount()
          Get the number of files deleted since the count was reset
 boolean getDetectTransferMode()
          Get the detect transfer mode
 DirectoryEmptyStrings getDirectoryEmptyMessages()
          Get class that holds fragments of server messages that indicate a directory is empty.
 int getDownloadCount()
          Get the number of files downloaded since the count was reset
 boolean getFileLockingEnabled()
          Determine if file locking on local downloaded files is being used or not.
 FileNotFoundStrings getFileNotFoundMessages()
          Get class that holds fragments of server messages that indicate a file was not found.
 java.lang.String getId()
          Get the identifying string for this instance
protected  java.io.InputStream getInputStream()
          Get the data input stream.
 FTPReply getLastReply()
          Gets the last reply from the server, whether valid or not
 FTPReply getLastValidReply()
          Gets the latest valid reply from the server
 boolean getListenOnAllInterfaces()
          Are we listening on all interfaces in active mode, which is the default?
 FTPMessageListener getMessageListener()
           
 long getMonitorInterval()
          Get the bytes transferred between each callback on the progress monitor
 int getNetworkBufferSize()
          Get the size of the network buffers (SO_SNDBUF and SO_RCVBUF).
protected  java.io.OutputStream getOutputStream()
          Get the data input stream.
 FTPProgressMonitor getProgressMonitor()
          Get the reference to the progress monitor
 FTPProgressMonitorEx getProgressMonitorEx()
          Get reference to the transfer listener
 java.net.InetAddress getRemoteAddr()
           
 java.lang.String getRemoteHost()
          Returns the IP address or name of the remote host.
 int getRemotePort()
          Returns the control-port being connected to on the remote server.
 int getRetryCount()
          Get the retry count for retrying file transfers.
 int getRetryDelay()
          Get the retry delay between retry attempts, in milliseconds.
 int getServerWakeupInterval()
          Get server wakeup interval in seconds.
 int getTimeout()
          Get the TCP timeout
 int getTransferBufferSize()
          Get the size of the buffers used in writing to and reading from the data sockets
 TransferCompleteStrings getTransferCompleteMessages()
          Get class that holds fragments of server messages that indicate a transfer completed.
 FTPTransferType getType()
          Get the current transfer type
 int getUploadCount()
          Get the number of files uploaded since the count was reset
static int[] getVersion()
          Get the version of edtFTPj
 java.lang.String help(java.lang.String command)
          Get the help text for the specified command
protected  void initGet(java.lang.String remoteFile)
          Request to the server that the get is set up
protected  void initialize(FTPControlSocket control)
          Set the control socket explicitly
protected  java.lang.String initPut(java.lang.String remoteFile, boolean append)
          Request the server to set up the put
static void initSOCKS(java.lang.String port, java.lang.String host)
          Set up SOCKS v4/v5 proxy settings.
static void initSOCKSAuthentication(java.lang.String username, java.lang.String password)
          Set up SOCKS username and password for SOCKS username/password authentication.
 boolean isAutoPassiveIPSubstitution()
          Is automatic substitution of the remote host IP set to be on for passive mode connections?
 boolean isDeleteOnFailure()
          If true, delete partially written files when exceptions are thrown during a download
 boolean isStrictReturnCodes()
          Determine if strict checking of return codes is switched on.
 boolean isTransferCancelled()
          Has the current transfer been cancelled?
 void keepAlive()
          Tries to keep the current connection alive by sending an innocuous command to signal that the client is still active
 java.lang.String list(java.lang.String dirname)
          Deprecated. As of FTP 1.1, replaced by dir(String)
 java.lang.String list(java.lang.String dirname, boolean full)
          Deprecated. As of FTP 1.1, replaced by dir(String,boolean)
 void login(java.lang.String user, java.lang.String password)
          Login into an account on the FTP server.
 void login(java.lang.String user, java.lang.String password, java.lang.String accountInfo)
          Login into an account on the FTP server.
 void mkdir(java.lang.String dir)
          Create the specified remote working directory
 java.util.Date modtime(java.lang.String remoteFile)
          Get modification time for a remote file.
 void noOperation()
          Send a "no operation" message that does nothing.
 void password(java.lang.String password)
          Supplies the password for a previously supplied username to log into the FTP server.
protected  void postTransferChecks(byte[] localBytes, java.lang.String remotePath, FTPTransferType transferType, boolean append)
          Can be overridden by subclasses to do any necessary post transfer checking.
protected  void postTransferChecks(java.lang.String localPath, java.lang.String remotePath, FTPTransferType transferType, boolean append)
          Can be overridden by subclasses to do any necessary post transfer checking.
 java.lang.String put(byte[] bytes, java.lang.String remoteFile)
          Put data onto the FTP server.
 java.lang.String put(byte[] bytes, java.lang.String remoteFile, boolean append)
          Put data onto the FTP server.
 java.lang.String put(java.io.InputStream srcStream, java.lang.String remoteFile)
          Put a stream of data onto the FTP server.
 java.lang.String put(java.io.InputStream srcStream, java.lang.String remoteFile, boolean append)
          Put a stream of data onto the FTP server.
 java.lang.String put(java.lang.String localPath, java.lang.String remoteFile)
          Put a local file onto the FTP server.
 java.lang.String put(java.lang.String localPath, java.lang.String remoteFile, boolean append)
          Put a local file onto the FTP server.
 java.lang.String pwd()
          Get the current remote working directory
 void quit()
          Quit the FTP session
 void quitImmediately()
          Quit the FTP session immediately.
 java.lang.String quote(java.lang.String command)
          Issue arbitrary ftp commands to the FTP server.
 java.lang.String quote(java.lang.String command, java.lang.String[] validCodes)
          Issue arbitrary ftp commands to the FTP server.
protected  int readChar(java.io.LineNumberReader in)
          Attempts to read a single character from the given InputStream.
 int readChunk(java.io.BufferedInputStream in, byte[] chunk, int chunksize)
          Attempts to read a specified number of bytes from the given InputStream and place it in the given byte-array.
 int readChunk(java.io.BufferedInputStream in, byte[] chunk, int offset, int chunksize)
          Attempts to read a specified number of bytes from the given InputStream and place it in the given byte-array.
protected  java.lang.String readLine(java.io.LineNumberReader in)
          Attempts to read a single line from the given InputStream.
protected  void reconnect(java.lang.String cwd)
          Reconnect to the server
 void rename(java.lang.String from, java.lang.String to)
          Rename a file or directory
 void resetDeleteCount()
          Reset the count of deleted files to zero.
 void resetDownloadCount()
          Reset the count of downloaded files to zero.
 void resetTransferMode(FTPTransferType previousType)
          Reset the transfer mode back to what it should be, if it has changed.
 void resetUploadCount()
          Reset the count of uploaded files to zero.
 void restart(long size)
          Issue the RESTart command to the remote server.
 void resume()
          Make the next file transfer (put or get) resume.
 void resumeNextDownload(long offset)
          Make the next download resume at a specific point.
 void rmdir(java.lang.String dir)
          Delete the specified remote working directory
 FTPReply sendCommand(java.lang.String command)
          Send a command to the server and get the reply
 void sendServerWakeup()
          Wake up the server during a transfer to prevent a timeout from occuring.
 void setActiveIPAddress(java.lang.String activeIP)
          We can force PORT to send a fixed IP address, which can be useful with certain NAT configurations.
 void setActivePortRange(int lowest, int highest)
          Force a certain range of ports to be used in active mode.
 void setAutoPassiveIPSubstitution(boolean autoPassiveIPSubstitution)
          Set automatic substitution of the remote host IP on if in passive mode.
 void setConnectMode(FTPConnectMode mode)
          Set the connect mode
 void setControlEncoding(java.lang.String controlEncoding)
          Set the control socket's encoding.
 void setControlPort(int controlPort)
          Deprecated. Use FTPClientInterface.setRemotePort(int) instead.
 void setDataChannelCallback(DataChannelCallback callback)
          Set the data channel callback, which notifies of the ip and port number to be connected to, and gives an opportunity to modify these values
 void setDataReceiveBufferSize(int size)
          Deprecated. see setNetworkBufferSize(int)
 void setDataSendBufferSize(int size)
          Deprecated. see setNetworkBufferSize(int)
 void setDeleteOnFailure(boolean deleteOnFailure)
          Switch on or off the automatic deletion of partially written files that are left when an exception is thrown during a download
 void setDetectTransferMode(boolean detectTransferMode)
          Set autodetect of filetypes on or off.
 void setDirectoryEmptyMessages(DirectoryEmptyStrings dirEmptyStrings)
          Set a new instance of the strings class
 void setFileLockingEnabled(boolean lockingEnabled)
          Set file locking to enabled or disabled.
 void setFileNotFoundMessages(FileNotFoundStrings fileNotFoundStrings)
          Set a new instance of the strings class
 void setForceUniqueNames(boolean forceUnique)
          Set to true if the STOU command is always to be used when uploading files, even if a filename is supplied.
 void setFTPFileFactory(FTPFileFactory fileFactory)
          Override the chosen file factory with a user created one - meaning that a specific parser has been selected
 void setId(java.lang.String id)
          Set the identifying string for this instance
 void setListenOnAllInterfaces(boolean listenOnAll)
          Listen on all interfaces for active mode transfers (the default).
 void setMessageListener(FTPMessageListener listener)
          Set a listener that handles all FTP messages
 void setModTime(java.lang.String remoteFile, java.util.Date modTime)
          Set the last modified time (UTC) for the supplied file.
 void setMonitorInterval(long interval)
          Set the number of bytes transferred between each callback on the progress monitor param interval bytes to be transferred before a callback
 void setNetworkBufferSize(int networkBufferSize)
          Set the size of the network buffers (SO_SNDBUF and SO_RCVBUF).
 void setParserLocale(java.util.Locale locale)
          Deprecated. @see FTPClient#setParserLocales(Locale[])
 void setParserLocales(java.util.Locale[] locales)
          Set the list of locales to be tried for date parsing of dir listings
 void setPORTIP(java.lang.String IPAddress)
          Deprecated.  
 void setProgressMonitor(FTPProgressMonitor monitor)
          Set a progress monitor for callbacks.
 void setProgressMonitor(FTPProgressMonitor monitor, long interval)
          Set a progress monitor for callbacks.
 void setProgressMonitorEx(FTPProgressMonitorEx monitorEx)
          Set reference to the transfer listener
 void setRemoteAddr(java.net.InetAddress remoteAddr)
          Set the remote address
 void setRemoteHost(java.lang.String remoteHost)
          Set the IP address or name of the remote host This may only be done if the client is not already connected to the server.
 void setRemotePort(int remotePort)
          Set the control to connect to on the remote server.
 void setRetryCount(int retryCount)
          Set the retry count for retrying file transfers.
 void setRetryDelay(int retryDelay)
          Set the retry delay between retry attempts, in milliseconds
 void setServerWakeupInterval(int interval)
          Set server wakeup interval in seconds.
 void setStrictReturnCodes(boolean strict)
          Set strict checking of FTP return codes.
 void setTimeout(int millis)
          Set the SO_TIMEOUT in milliseconds on the underlying socket.
 void setTransferBufferSize(int size)
          Set the size of the buffers used in writing to and reading from the data sockets
 void setTransferCompleteMessages(TransferCompleteStrings transferCompleteStrings)
          Set a new instance of the strings class
 void setType(FTPTransferType type)
          Set the transfer type
protected  void setupDataSocket()
          Set up the data socket
 boolean site(java.lang.String command)
          Run a site-specific command on the server.
 long size(java.lang.String remoteFile)
          Get the size of a remote file.
 java.lang.String stat()
          Sends stat message to enquire about the status of a transfer.
 java.lang.String system()
          Get the type of the OS at the server
 java.lang.String toString()
          String representation
 void user(java.lang.String user)
          Supply the user name to log into an account on the FTP server.
 void validateReply(FTPReply reply, java.lang.String expectedReplyCode)
          Validate an FTPReply
 void validateReply(FTPReply reply, java.lang.String[] expectedReplyCodes)
          Validate an FTPReply
 void validateTransfer()
          Validate that the put() or get() was successful.
protected  void validateTransferOnError(java.io.IOException ex)
          Validate a transfer when an error has occurred on the data channel.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

cvsId

public static java.lang.String cvsId
Revision control id


DEFAULT_MONITOR_INTERVAL

public static final int DEFAULT_MONITOR_INTERVAL
Default byte interval for transfer monitor

See Also:
Constant Field Values

DEFAULT_BUFFER_SIZE

public static final int DEFAULT_BUFFER_SIZE
Default transfer buffer size

See Also:
Constant Field Values

DEFAULT_TIMEOUT

public static final int DEFAULT_TIMEOUT
Default timeout

See Also:
Constant Field Values

DEFAULT_RETRY_COUNT

public static final int DEFAULT_RETRY_COUNT
Default number of retries for file transfers

See Also:
Constant Field Values

DEFAULT_RETRY_DELAY

public static final int DEFAULT_RETRY_DELAY
Default retry delay in milliseconds

See Also:
Constant Field Values

DEFAULT_TCP_BUFFER_SIZE

public static final int DEFAULT_TCP_BUFFER_SIZE
Default SO_SNDBUF and SO_RCVBUF size

See Also:
Constant Field Values

DEFAULT_ENCODING

public static final java.lang.String DEFAULT_ENCODING
Default encoding used for control data

See Also:
Constant Field Values

CARRIAGE_RETURN

public static final byte CARRIAGE_RETURN
Used for ASCII translation

See Also:
Constant Field Values

LINE_FEED

public static final byte LINE_FEED
Used for ASCII translation

See Also:
Constant Field Values

FTP_LINE_SEPARATOR

public static final byte[] FTP_LINE_SEPARATOR
Used for ASCII translation


DEFAULT_LISTING_LOCALES

public static java.util.Locale[] DEFAULT_LISTING_LOCALES
Default locales


control

protected FTPControlSocket control
Socket responsible for controlling the connection


data

protected com.enterprisedt.net.ftp.internal.FTPDataSocket data
Socket responsible for transferring the data


timeout

protected int timeout
Socket timeout for both data and control. In milliseconds


serverWakeupInterval

protected int serverWakeupInterval
Interval in seconds in between server wakeups. O is not enabled


remoteAddr

protected java.net.InetAddress remoteAddr
Address of the remote server.


remoteHost

protected java.lang.String remoteHost
Name/IP of remote host


id

protected java.lang.String id
Id of instance


controlPort

protected int controlPort
Control port number.


controlEncoding

protected java.lang.String controlEncoding
Encoding used on control socket


dirEmptyStrings

protected DirectoryEmptyStrings dirEmptyStrings
Matcher for directory empty


transferCompleteStrings

protected TransferCompleteStrings transferCompleteStrings
Matcher for transfer complete


fileNotFoundStrings

protected FileNotFoundStrings fileNotFoundStrings
Matcher for permission denied


detectTransferMode

protected boolean detectTransferMode
If true, filetypes are autodetected and transfer mode changed to binary/ASCII as required


fileLockingEnabled

protected boolean fileLockingEnabled
If true, file locking is used on local downloaded files to prevent other processes corrupting them


monitorInterval

protected long monitorInterval
Bytes transferred in between monitor callbacks


transferBufferSize

protected int transferBufferSize
Size of transfer buffers


dataReceiveBufferSize

protected int dataReceiveBufferSize
Size of data socket's receive buffer


dataSendBufferSize

protected int dataSendBufferSize
Size of data socket's send buffer


monitor

protected FTPProgressMonitor monitor
Progress monitor


messageListener

protected FTPMessageListener messageListener
Message listener


monitorEx

protected FTPProgressMonitorEx monitorEx
File transfer listener


transferType

protected FTPTransferType transferType
Record of the transfer type - make the default ASCII


lastValidReply

protected FTPReply lastValidReply
Holds the last valid reply from the server on the control socket


lastReply

protected FTPReply lastReply
Holds the last reply from the server on the control socket


user

protected java.lang.String user
Username cached


password

protected java.lang.String password
Password cached


throttler

protected BandwidthThrottler throttler
Threshold for throttling


dataChannelCallback

protected DataChannelCallback dataChannelCallback
Pasv callback method

Constructor Detail

FTPClient

public FTPClient(java.lang.String remoteHost)
          throws java.io.IOException,
                 FTPException
Deprecated. use setter methods to set properties

Constructor. Creates the control socket

Parameters:
remoteHost - the remote hostname
Throws:
java.io.IOException
FTPException

FTPClient

public FTPClient(java.lang.String remoteHost,
                 int controlPort)
          throws java.io.IOException,
                 FTPException
Deprecated. use setter methods to set properties

Constructor. Creates the control socket

Parameters:
remoteHost - the remote hostname
controlPort - port for control stream (-1 for default port)
Throws:
java.io.IOException
FTPException

FTPClient

public FTPClient(java.lang.String remoteHost,
                 int controlPort,
                 int timeout)
          throws java.io.IOException,
                 FTPException
Deprecated. use setter methods to set properties

Constructor. Creates the control socket

Parameters:
remoteHost - the remote hostname
controlPort - port for control stream (use -1 for the default port)
timeout - the length of the timeout, in milliseconds (pass in 0 for no timeout)
Throws:
java.io.IOException
FTPException

FTPClient

public FTPClient(java.lang.String remoteHost,
                 int controlPort,
                 int timeout,
                 java.lang.String encoding)
          throws java.io.IOException,
                 FTPException
Deprecated. use setter methods to set properties

Constructor. Creates the control socket

Parameters:
remoteHost - the remote hostname
controlPort - port for control stream (use -1 for the default port)
timeout - the length of the timeout, in milliseconds (pass in 0 for no timeout)
encoding - character encoding used for data
Throws:
java.io.IOException
FTPException

FTPClient

public FTPClient(java.net.InetAddress remoteAddr)
          throws java.io.IOException,
                 FTPException
Deprecated. use setter methods to set properties

Constructor. Creates the control socket

Parameters:
remoteAddr - the address of the remote host
Throws:
java.io.IOException
FTPException

FTPClient

public FTPClient(java.net.InetAddress remoteAddr,
                 int controlPort)
          throws java.io.IOException,
                 FTPException
Deprecated. use setter methods to set properties

Constructor. Creates the control socket. Allows setting of control port (normally set by default to 21).

Parameters:
remoteAddr - the address of the remote host
controlPort - port for control stream
Throws:
java.io.IOException
FTPException

FTPClient

public FTPClient(java.net.InetAddress remoteAddr,
                 int controlPort,
                 int timeout)
          throws java.io.IOException,
                 FTPException
Deprecated. use setter methods to set properties

Constructor. Creates the control socket. Allows setting of control port (normally set by default to 21).

Parameters:
remoteAddr - the address of the remote host
controlPort - port for control stream (-1 for default port)
timeout - the length of the timeout, in milliseconds (pass in 0 for no timeout)
Throws:
java.io.IOException
FTPException

FTPClient

public FTPClient(java.net.InetAddress remoteAddr,
                 int controlPort,
                 int timeout,
                 java.lang.String encoding)
          throws java.io.IOException,
                 FTPException
Deprecated. use setter methods to set properties

Constructor. Creates the control socket. Allows setting of control port (normally set by default to 21).

Parameters:
remoteAddr - the address of the remote host
controlPort - port for control stream (-1 for default port)
timeout - the length of the timeout, in milliseconds (pass in 0 for no timeout)
encoding - character encoding used for data
Throws:
java.io.IOException
FTPException

FTPClient

public FTPClient()
Default constructor should now always be used together with setter methods in preference to other constructors (now deprecated). The connect() method is used to perform the actual connection to the remote host - but only for this constructor. Deprecated constructors connect in the constructor and connect() is not required (and cannot be called).

Method Detail

getVersion

public static int[] getVersion()
Get the version of edtFTPj

Returns:
int array of {major,middle,minor} version numbers

getBuildTimestamp

public static java.lang.String getBuildTimestamp()
Get the build timestamp

Returns:
d-MMM-yyyy HH:mm:ss z build timestamp

connect

public void connect()
             throws java.io.IOException,
                    FTPException
Connects to the server at the address and port number defined in the constructor. Must be performed before login() or user() is called.

Specified by:
connect in interface FTPClientInterface
Throws:
java.io.IOException - Thrown if there is a TCP/IP-related error.
FTPException - Thrown if there is an error related to the FTP protocol.

connected

public boolean connected()
Is this client connected?

Specified by:
connected in interface FTPClientInterface
Returns:
true if connected, false otherwise

checkConnection

protected void checkConnection(boolean shouldBeConnected)
                        throws FTPException
Checks if the client has connected to the server and throws an exception if it hasn't. This is only intended to be used by subclasses

Throws:
FTPException - Thrown if the client has not connected to the server.

initialize

protected void initialize(FTPControlSocket control)
                   throws java.io.IOException
Set the control socket explicitly

Parameters:
control - control socket reference
Throws:
java.io.IOException

debugResponses

public void debugResponses(boolean on)
Deprecated. use the Logger class to switch debugging on and off

Switch debug of responses on or off

Parameters:
on - true if you wish to have responses to the log stream, false otherwise

getId

public java.lang.String getId()
Get the identifying string for this instance

Specified by:
getId in interface FTPClientInterface
Returns:
identifying string

setId

public void setId(java.lang.String id)
Set the identifying string for this instance

Specified by:
setId in interface FTPClientInterface
Parameters:
id - identifying string

getDownloadCount

public int getDownloadCount()
Get the number of files downloaded since the count was reset

Specified by:
getDownloadCount in interface FTPClientInterface
Returns:
download file count

resetDownloadCount

public void resetDownloadCount()
Reset the count of downloaded files to zero.

Specified by:
resetDownloadCount in interface FTPClientInterface

getUploadCount

public int getUploadCount()
Get the number of files uploaded since the count was reset

Specified by:
getUploadCount in interface FTPClientInterface
Returns:
upload file count

resetUploadCount

public void resetUploadCount()
Reset the count of uploaded files to zero.

Specified by:
resetUploadCount in interface FTPClientInterface

getDeleteCount

public int getDeleteCount()
Get the number of files deleted since the count was reset

Specified by:
getDeleteCount in interface FTPClientInterface
Returns:
deleted file count

resetDeleteCount

public void resetDeleteCount()
Reset the count of deleted files to zero.

Specified by:
resetDeleteCount in interface FTPClientInterface

setDataChannelCallback

public void setDataChannelCallback(DataChannelCallback callback)
Set the data channel callback, which notifies of the ip and port number to be connected to, and gives an opportunity to modify these values

Parameters:
callback - callback to set

setStrictReturnCodes

public void setStrictReturnCodes(boolean strict)
Set strict checking of FTP return codes. If strict checking is on (the default) code must exactly match the expected code. If strict checking is off, only the first digit must match.

Parameters:
strict - true for strict checking, false for loose checking

isStrictReturnCodes

public boolean isStrictReturnCodes()
Determine if strict checking of return codes is switched on. If it is (the default), all return codes must exactly match the expected code. If strict checking is off, only the first digit must match.

Returns:
true if strict return code checking, false if non-strict.

setListenOnAllInterfaces

public void setListenOnAllInterfaces(boolean listenOnAll)
Listen on all interfaces for active mode transfers (the default).

Parameters:
listenOnAll - true if listen on all interfaces, false to listen on the control interface

getListenOnAllInterfaces

public boolean getListenOnAllInterfaces()
Are we listening on all interfaces in active mode, which is the default?

Returns:
true if listening on all interfaces, false if listening just on the control interface

getFileNotFoundMessages

public FileNotFoundStrings getFileNotFoundMessages()
Get class that holds fragments of server messages that indicate a file was not found. New messages can be added.

The fragments are used when it is necessary to examine the message returned by a server to see if it is saying a file was not found. If an FTP server is returning a different message that still clearly indicates a file was not found, use this property to add a new server fragment to the repository via the add method. It would be helpful to email support at enterprisedt dot com to inform us of the message so it can be added to the next build.

Returns:
messages class

setFileNotFoundMessages

public void setFileNotFoundMessages(FileNotFoundStrings fileNotFoundStrings)
Set a new instance of the strings class

Parameters:
fileNotFoundStrings - new instance

getTransferCompleteMessages

public TransferCompleteStrings getTransferCompleteMessages()
Get class that holds fragments of server messages that indicate a transfer completed. New messages can be added.

The fragments are used when it is necessary to examine the message returned by a server to see if it is saying a transfer completed. If an FTP server is returning a different message that still clearly indicates a transfer failed, use this property to add a new server fragment to the repository via the add method. It would be helpful to email support at enterprisedt dot com to inform us of the message so it can be added to the next build.

Returns:
messages class

setTransferCompleteMessages

public void setTransferCompleteMessages(TransferCompleteStrings transferCompleteStrings)
Set a new instance of the strings class

Parameters:
transferCompleteStrings - new instance

getDirectoryEmptyMessages

public DirectoryEmptyStrings getDirectoryEmptyMessages()
Get class that holds fragments of server messages that indicate a directory is empty. New messages can be added.

The fragments are used when it is necessary to examine the message returned by a server to see if it is saying a directory is empty. If an FTP server is returning a different message that still clearly indicates a directory is empty, use this property to add a new server fragment to the repository via the add method. It would be helpful to email support at enterprisedt dot com to inform us of the message so it can be added to the next build.

Returns:
messages class

setDirectoryEmptyMessages

public void setDirectoryEmptyMessages(DirectoryEmptyStrings dirEmptyStrings)
Set a new instance of the strings class

Parameters:
dirEmptyStrings - new instance

setDetectTransferMode

public void setDetectTransferMode(boolean detectTransferMode)
Description copied from interface: FTPClientInterface
Set autodetect of filetypes on or off. If on, the transfer mode is switched from ASCII to binary and vice versa depending on the extension of the file. After the transfer, the mode is always returned to what it was before the transfer was performed. The default is off. If the filetype is unknown, the transfer mode is unchanged

Specified by:
setDetectTransferMode in interface FTPClientInterface
Parameters:
detectTransferMode - true if detecting transfer mode, false if not

getDetectTransferMode

public boolean getDetectTransferMode()
Description copied from interface: FTPClientInterface
Get the detect transfer mode

Specified by:
getDetectTransferMode in interface FTPClientInterface
Returns:
true if we are detecting binary and ASCII transfers from the file type

setFileLockingEnabled

public void setFileLockingEnabled(boolean lockingEnabled)
Description copied from interface: FTPClientInterface
Set file locking to enabled or disabled. When downloading files, by default the local file is locked for exclusive writing to prevent other processes corrupting it. Sometimes this needs to be disabled, e.g. tryLock() fails on NFS drives in versions of Java prior to 7.

Specified by:
setFileLockingEnabled in interface FTPClientInterface
Parameters:
lockingEnabled - true to enable locking, false to disable

getFileLockingEnabled

public boolean getFileLockingEnabled()
Description copied from interface: FTPClientInterface
Determine if file locking on local downloaded files is being used or not. Default is true.

Specified by:
getFileLockingEnabled in interface FTPClientInterface
Returns:
true if file locking is enabled, false otherwise

setForceUniqueNames

public void setForceUniqueNames(boolean forceUnique)
Set to true if the STOU command is always to be used when uploading files, even if a filename is supplied. Normally STOU is only used if the supplied remote filename is null or the empty string.

Parameters:
forceUnique - true if STOU is always to be used

chooseTransferMode

protected FTPTransferType chooseTransferMode(java.lang.String filename)
                                      throws java.io.IOException,
                                             FTPException
Switch the transfer mode if requested and if necessary

Parameters:
filename - filename of file to be transferred
Throws:
FTPException
java.io.IOException

setTimeout

public void setTimeout(int millis)
                throws java.io.IOException
Set the SO_TIMEOUT in milliseconds on the underlying socket. If set this means the socket will block in a read operation only for this length of time - useful if the FTP sever has hung, for example. The default is 60,000 milliseconds. Note that for JREs 1.4+, the timeout is also used when first connecting to the remote host.

Specified by:
setTimeout in interface FTPClientInterface
Parameters:
millis - The length of the timeout, in milliseconds
Throws:
java.io.IOException

getTimeout

public int getTimeout()
Get the TCP timeout

Specified by:
getTimeout in interface FTPClientInterface
Returns:
timeout that is used, in milliseconds

getRemotePort

public int getRemotePort()
Returns the control-port being connected to on the remote server. Note that this method replaces getControlPort().

Specified by:
getRemotePort in interface FTPClientInterface
Returns:
Returns the port being connected to on the remote server.

setRemotePort

public void setRemotePort(int remotePort)
                   throws FTPException
Set the control to connect to on the remote server. Can only do this if not already connected. Note that this method replaces setControlPort(int).

Specified by:
setRemotePort in interface FTPClientInterface
Parameters:
remotePort - The port to use.
Throws:
FTPException - Thrown if the client is already connected to the server.

getControlPort

public int getControlPort()
Deprecated. Use FTPClientInterface.getRemotePort() instead.

Returns the control-port being connected to on the remote server.

Returns:
Returns the port being connected to on the remote server.

setControlPort

public void setControlPort(int controlPort)
                    throws FTPException
Deprecated. Use FTPClientInterface.setRemotePort(int) instead.

Set the control to connect to on the remote server. Can only do this if not already connected.

Parameters:
controlPort - The port to use.
Throws:
FTPException - Thrown if the client is already connected to the server.

getRemoteAddr

public java.net.InetAddress getRemoteAddr()
Returns:
Returns the remoteAddr.

setRemoteAddr

public void setRemoteAddr(java.net.InetAddress remoteAddr)
                   throws FTPException
Set the remote address

Parameters:
remoteAddr - The remoteAddr to set.
Throws:
FTPException

getRemoteHost

public java.lang.String getRemoteHost()
Description copied from interface: FTPClientInterface
Returns the IP address or name of the remote host.

Specified by:
getRemoteHost in interface FTPClientInterface
Returns:
Returns the remote host.

setRemoteHost

public void setRemoteHost(java.lang.String remoteHost)
                   throws java.io.IOException,
                          FTPException
Description copied from interface: FTPClientInterface
Set the IP address or name of the remote host This may only be done if the client is not already connected to the server.

Specified by:
setRemoteHost in interface FTPClientInterface
Parameters:
remoteHost - The IP address or name of the remote host
Throws:
FTPException - Thrown if the client is already connected to the server.
java.io.IOException

isAutoPassiveIPSubstitution

public boolean isAutoPassiveIPSubstitution()
Is automatic substitution of the remote host IP set to be on for passive mode connections?

Returns:
true if set on, false otherwise

setAutoPassiveIPSubstitution

public void setAutoPassiveIPSubstitution(boolean autoPassiveIPSubstitution)
Set automatic substitution of the remote host IP on if in passive mode. If proxies are used (e.g. SOCKS) then this setting is ignored.

Parameters:
autoPassiveIPSubstitution - true if set to on, false otherwise

getServerWakeupInterval

public int getServerWakeupInterval()
Get server wakeup interval in seconds. A value of 0 means it is disabled (the default).

Returns:
interval in seconds

setServerWakeupInterval

public void setServerWakeupInterval(int interval)
Set server wakeup interval in seconds. A value of 0 means it is disabled (the default). This may hang or confuse the FTP server - use with caution.

Parameters:
interval - interval in seconds

getControlEncoding

public java.lang.String getControlEncoding()
Get the encoding used for the control connection

Returns:
Returns the current controlEncoding.

getNetworkBufferSize

public int getNetworkBufferSize()
Get the size of the network buffers (SO_SNDBUF and SO_RCVBUF).

Specified by:
getNetworkBufferSize in interface FTPClientInterface
Returns:
int

setNetworkBufferSize

public void setNetworkBufferSize(int networkBufferSize)
Set the size of the network buffers (SO_SNDBUF and SO_RCVBUF).

Specified by:
setNetworkBufferSize in interface FTPClientInterface
Parameters:
networkBufferSize - new buffer size to set

setDataReceiveBufferSize

public void setDataReceiveBufferSize(int size)
Deprecated. see setNetworkBufferSize(int)

Set the size of the data socket's receive buffer.

Parameters:
size - must be > 0

getDataReceiveBufferSize

public int getDataReceiveBufferSize()
Deprecated. see getNetworkBufferSize()

Get the size of the data socket's receive buffer. A value of 0 means the defaults are being used.

Returns:
size

setDataSendBufferSize

public void setDataSendBufferSize(int size)
Deprecated. see setNetworkBufferSize(int)

Set the size of the data socket's send buffer.

Parameters:
size - must be > 0

getDataSendBufferSize

public int getDataSendBufferSize()
Deprecated. see getNetworkBufferSize()

Get the size of the data socket's send buffer. A value of 0 means the defaults are being used.

Returns:
size

setControlEncoding

public void setControlEncoding(java.lang.String controlEncoding)
                        throws FTPException
Set the control socket's encoding. Can only do this if not connected

Specified by:
setControlEncoding in interface FTPClientInterface
Parameters:
controlEncoding - The controlEncoding to set, which is the name of a Charset
Throws:
FTPException
See Also:
Charset

getMessageListener

public FTPMessageListener getMessageListener()
Returns:
Returns the messageListener.

setMessageListener

public void setMessageListener(FTPMessageListener listener)
Set a listener that handles all FTP messages

Parameters:
listener - message listener

getProgressMonitorEx

public FTPProgressMonitorEx getProgressMonitorEx()
Get reference to the transfer listener

Returns:
FTPProgressMonitorEx

setProgressMonitorEx

public void setProgressMonitorEx(FTPProgressMonitorEx monitorEx)
Set reference to the transfer listener

Parameters:
monitorEx - transfer listener

setConnectMode

public void setConnectMode(FTPConnectMode mode)
Set the connect mode

Parameters:
mode - ACTIVE or PASV mode

getConnectMode

public FTPConnectMode getConnectMode()
Returns:
Returns the connectMode.

setProgressMonitor

public void setProgressMonitor(FTPProgressMonitor monitor,
                               long interval)
Description copied from interface: FTPClientInterface
Set a progress monitor for callbacks. The bytes transferred in between callbacks is only indicative. In many cases, the data is read in chunks, and if the interval is set to be smaller than the chunk size, the callback will occur after after chunk transfer rather than the interval. Depending on the implementation, the chunk size can be as large as 64K.

Specified by:
setProgressMonitor in interface FTPClientInterface
Parameters:
monitor - the monitor object
interval - bytes transferred in between callbacks

setProgressMonitor

public void setProgressMonitor(FTPProgressMonitor monitor)
Description copied from interface: FTPClientInterface
Set a progress monitor for callbacks. Uses default callback interval

Specified by:
setProgressMonitor in interface FTPClientInterface
Parameters:
monitor - the monitor object

getProgressMonitor

public FTPProgressMonitor getProgressMonitor()
Get the reference to the progress monitor

Returns:
progress monitor

getMonitorInterval

public long getMonitorInterval()
Description copied from interface: FTPClientInterface
Get the bytes transferred between each callback on the progress monitor

Specified by:
getMonitorInterval in interface FTPClientInterface
Returns:
long bytes to be transferred before a callback

setMonitorInterval

public void setMonitorInterval(long interval)
Set the number of bytes transferred between each callback on the progress monitor param interval bytes to be transferred before a callback


setTransferBufferSize

public void setTransferBufferSize(int size)
Set the size of the buffers used in writing to and reading from the data sockets

Parameters:
size - new size of buffer in bytes

getTransferBufferSize

public int getTransferBufferSize()
Get the size of the buffers used in writing to and reading from the data sockets

Returns:
transfer buffer size

cancelTransfer

public void cancelTransfer()
Description copied from interface: FTPClientInterface
Cancels the current transfer. Generally called from a separate thread. Note that this may leave partially written files on the server or on local disk, and should not be used unless absolutely necessary. After the transfer is cancelled the connection may be in an inconsistent state, therefore it is best to quit and reconnect. It may cause exceptions to be thrown depending on the underlying protocol being used. Note that this can also be used to cancel directory listings, which can involve large amounts of data for directories containing many files.

Specified by:
cancelTransfer in interface FTPClientInterface

isTransferCancelled

public boolean isTransferCancelled()
Has the current transfer been cancelled?

Returns:
true if cancel, false otherwise

isDeleteOnFailure

public boolean isDeleteOnFailure()
If true, delete partially written files when exceptions are thrown during a download

Returns:
true if delete local file on error

setDeleteOnFailure

public void setDeleteOnFailure(boolean deleteOnFailure)
Switch on or off the automatic deletion of partially written files that are left when an exception is thrown during a download

Parameters:
deleteOnFailure - true if delete when a failure occurs

setPORTIP

public void setPORTIP(java.lang.String IPAddress)
               throws FTPException
Deprecated. 

We can force PORT to send a fixed IP address, which can be useful with certain NAT configurations. Must be connected to the remote host to call this method.

Parameters:
IPAddress - IP address to force, in 192.168.1.0 form
Throws:
FTPException

setActiveIPAddress

public void setActiveIPAddress(java.lang.String activeIP)
                        throws FTPException
We can force PORT to send a fixed IP address, which can be useful with certain NAT configurations. Must be connected to the remote host to call this method.

Parameters:
activeIP - IP address to force, in 192.168.1.0 form or in IPV6 form, e.g. 1080::8:800:200C:417A
Throws:
FTPException

getActiveIPAddress

public java.lang.String getActiveIPAddress()
Get the active IP address that is set.

Returns:
active IP address or null if not set

setActivePortRange

public void setActivePortRange(int lowest,
                               int highest)
                        throws FTPException
Force a certain range of ports to be used in active mode. This is generally so that a port range can be configured in a firewall. Note that if lowest == highest, a single port will be used. This works well for uploads, but downloads generally require multiple ports, as most servers fail to create a connection repeatedly for the same port.

Parameters:
lowest - Lower limit of range.
highest - Upper limit of range.
Throws:
FTPException

getActiveLowPort

public int getActiveLowPort()
Get the lower limit of the port range for active mode.

Returns:
lower limit, or -1 if not set

getActiveHighPort

public int getActiveHighPort()
Get the upper limit of the port range for active mode.

Returns:
upper limit, or -1 if not set

login

public void login(java.lang.String user,
                  java.lang.String password)
           throws java.io.IOException,
                  FTPException
Login into an account on the FTP server. This call completes the entire login process. Note that connect() must be called first.

Parameters:
user - user name
password - user's password
Throws:
java.io.IOException
FTPException

login

public void login(java.lang.String user,
                  java.lang.String password,
                  java.lang.String accountInfo)
           throws java.io.IOException,
                  FTPException
Login into an account on the FTP server. This call completes the entire login process. This method permits additional account information to be supplied. FTP servers can use combinations of these parameters in many different ways, e.g. to pass in proxy details via this method, some servers use the "user" as 'ftpUser + "@" + ftpHost + " " + ftpProxyUser', the "password" as the FTP user's password, and the accountInfo as the proxy password. Note that connect() must be called first.

Parameters:
user - user name
password - user's password
accountInfo - account info string
Throws:
java.io.IOException
FTPException

user

public void user(java.lang.String user)
          throws java.io.IOException,
                 FTPException
Supply the user name to log into an account on the FTP server. Must be followed by the password() method - but we allow for no password. Note that connect() must be called first.

Parameters:
user - user name
Throws:
java.io.IOException
FTPException

password

public void password(java.lang.String password)
              throws java.io.IOException,
                     FTPException
Supplies the password for a previously supplied username to log into the FTP server. Must be preceeded by the user() method

Parameters:
password - The password.
Throws:
java.io.IOException
FTPException

account

public void account(java.lang.String accountInfo)
             throws java.io.IOException,
                    FTPException
Supply account information string to the server. This can be used for a variety of purposes - for example, the server could indicate that a password has expired (by sending 332 in reply to PASS) and a new password automatically supplied via ACCT. It is up to the server how it uses this string.

Parameters:
accountInfo - account information string
Throws:
java.io.IOException
FTPException

initSOCKS

public static void initSOCKS(java.lang.String port,
                             java.lang.String host)
Set up SOCKS v4/v5 proxy settings. This can be used if there is a SOCKS proxy server in place that must be connected thru. Note that setting these properties directs all TCP sockets in this JVM to the SOCKS proxy

Parameters:
port - SOCKS proxy port
host - SOCKS proxy hostname

initSOCKSAuthentication

public static void initSOCKSAuthentication(java.lang.String username,
                                           java.lang.String password)
Set up SOCKS username and password for SOCKS username/password authentication. Often, no authentication will be required but the SOCKS server may be configured to request these.

Parameters:
username - the SOCKS username
password - the SOCKS password

clearSOCKS

public static void clearSOCKS()
Clear SOCKS settings. Note that setting these properties affects all TCP sockets in this JVM


quote

public java.lang.String quote(java.lang.String command,
                              java.lang.String[] validCodes)
                       throws java.io.IOException,
                              FTPException
Issue arbitrary ftp commands to the FTP server.

Parameters:
command - ftp command to be sent to server
validCodes - valid return codes for this command. If null is supplied no validation is performed
Returns:
the text returned by the FTP server
Throws:
java.io.IOException
FTPException

quote

public java.lang.String quote(java.lang.String command)
                       throws java.io.IOException,
                              FTPException
Issue arbitrary ftp commands to the FTP server.

Parameters:
command - ftp command to be sent to server
Returns:
the raw text returned by the FTP server including reply code
Throws:
java.io.IOException
FTPException

executeCommand

public java.lang.String executeCommand(java.lang.String command)
                                throws FTPException,
                                       java.io.IOException
Request that the remote server execute the literal command supplied. This is a synonym for the quote() command.

Specified by:
executeCommand in interface FTPClientInterface
Parameters:
command - command string
Returns:
result string by server
Throws:
FTPException
java.io.IOException

existsFile

public boolean existsFile(java.lang.String remoteFile)
                   throws java.io.IOException,
                          FTPException
Use to find out if a file exists or not. Since there is no reliable standard command to check the existence of a file, this method first tries to get the size of the file. If this fails then it tries to get the modtime and finally, if that fails will get a directory listing and look for the file in that listing.

Parameters:
remoteFile - File of which to check existence.
Returns:
true if directory exists.
Throws:
java.io.IOException - Thrown if there is a TCP/IP-related error.
FTPException - Thrown if there is an error related to the FTP protocol.

existsDirectory

public boolean existsDirectory(java.lang.String remoteDirectory)
                        throws java.io.IOException,
                               FTPException
Use to find out if a directory exists or not. Since there is no reliable standard command to check the existence of a directory, this method tries to change into the directory and then changes back to the original directory.

Parameters:
remoteDirectory - Directory of which to check existence.
Returns:
true if directory exists.
Throws:
java.io.IOException - Thrown if there is a TCP/IP-related error.
FTPException - Thrown if there is an error related to the FTP protocol.

exists

public boolean exists(java.lang.String remoteFile)
               throws java.io.IOException,
                      FTPException
Deprecated. Use existsFile(String).

Description copied from interface: FTPClientInterface
Does the named file exist in the current server directory?

Specified by:
exists in interface FTPClientInterface
Parameters:
remoteFile - name of remote file
Returns:
true if exists, false otherwise
Throws:
java.io.IOException
FTPException

sendCommand

public FTPReply sendCommand(java.lang.String command)
                     throws java.io.IOException,
                            FTPException
Send a command to the server and get the reply

Parameters:
command - command
Returns:
FTPReply
Throws:
java.io.IOException
FTPException

validateReply

public void validateReply(FTPReply reply,
                          java.lang.String expectedReplyCode)
                   throws FTPException
Validate an FTPReply

Parameters:
reply - reply object
expectedReplyCode - expected code
Throws:
FTPException

validateReply

public void validateReply(FTPReply reply,
                          java.lang.String[] expectedReplyCodes)
                   throws FTPException
Validate an FTPReply

Parameters:
reply - reply object
expectedReplyCodes - expected codes
Throws:
FTPException

size

public long size(java.lang.String remoteFile)
          throws java.io.IOException,
                 FTPException
Description copied from interface: FTPClientInterface
Get the size of a remote file. This is not a standard FTP command, it is defined in "Extensions to FTP", a draft RFC (draft-ietf-ftpext-mlst-16.txt)

Specified by:
size in interface FTPClientInterface
Parameters:
remoteFile - name or path of remote file in current directory
Returns:
size of file in bytes
Throws:
java.io.IOException
FTPException

resume

public void resume()
            throws FTPException
Description copied from interface: FTPClientInterface
Make the next file transfer (put or get) resume. For puts(), the bytes already transferred are skipped over, while for gets(), if writing to a file, it is opened in append mode, and only the bytes required are transferred. Currently resume is only supported for BINARY transfers (which is generally what it is most useful for).

Specified by:
resume in interface FTPClientInterface
Throws:
FTPException

resumeNextDownload

public void resumeNextDownload(long offset)
                        throws FTPException
Description copied from interface: FTPClientInterface
Make the next download resume at a specific point. This resume method allows the resume offset to be set explicitly for downloads. Offset bytes are skipped before downloading the file. This means you can download only the last few bytes of the file rather than the whole file, irrespective of the size of the local file. Currently resume is only supported for BINARY transfers (which is generally what it is most useful for).

Specified by:
resumeNextDownload in interface FTPClientInterface
Throws:
FTPException

cancelResume

public void cancelResume()
                  throws java.io.IOException,
                         FTPException
Description copied from interface: FTPClientInterface
Cancel the resume. Use this method if something goes wrong and the server is left in an inconsistent state

Specified by:
cancelResume in interface FTPClientInterface
Throws:
java.io.IOException
FTPException

forceResumeOff

protected void forceResumeOff()
Force the resume flag off. Internal use only.


restart

public void restart(long size)
             throws java.io.IOException,
                    FTPException
Issue the RESTart command to the remote server. This indicates the byte position that REST is performed at. For put, bytes start at this point, while for get, bytes are fetched from this point.

Parameters:
size - the REST param, the mark at which the restart is performed on the remote file. For STOR, this is retrieved by SIZE
Throws:
java.io.IOException
FTPException

getRetryCount

public int getRetryCount()
Get the retry count for retrying file transfers. Default is 3 attempts.

Returns:
number of times a transfer is retried

setRetryCount

public void setRetryCount(int retryCount)
Set the retry count for retrying file transfers.

Parameters:
retryCount - new retry count

getRetryDelay

public int getRetryDelay()
Get the retry delay between retry attempts, in milliseconds. Default is 5000.

Returns:
retry delay in milliseconds

setRetryDelay

public void setRetryDelay(int retryDelay)
Set the retry delay between retry attempts, in milliseconds

Parameters:
new - retry delay in milliseconds

get

public void get(java.lang.String localPath,
                java.lang.String remoteFile)
         throws java.io.IOException,
                FTPException
Description copied from interface: FTPClientInterface
Get data from the FTP server. Uses the currently set transfer mode.

Specified by:
get in interface FTPClientInterface
Parameters:
localPath - local file to put data in
remoteFile - name of remote file in current directory
Throws:
java.io.IOException
FTPException

put

public java.lang.String put(java.io.InputStream srcStream,
                            java.lang.String remoteFile,
                            boolean append)
                     throws java.io.IOException,
                            FTPException
Description copied from interface: FTPClientInterface
Put a stream of data onto the FTP server. It is placed in the current directory. If a remote file name is supplied, it is stored as that name on the server. If null is supplied, the server will generate a unique filename (via STOU) if it supports this option. Allows appending if current file exists.

Specified by:
put in interface FTPClientInterface
Parameters:
srcStream - input stream of data to put
remoteFile - name of remote file in current directory, or null if a unique filename is to be generated by the server
append - true if appending, false otherwise
Returns:
The name of the remote file - normally the name supplied, or else the unique name generated by the server.
Throws:
java.io.IOException
FTPException

reconnect

protected void reconnect(java.lang.String cwd)
                  throws java.io.IOException,
                         FTPException
Reconnect to the server

Parameters:
cwd - current working dir
Throws:
java.io.IOException
FTPException

put

public java.lang.String put(java.lang.String localPath,
                            java.lang.String remoteFile)
                     throws java.io.IOException,
                            FTPException
Description copied from interface: FTPClientInterface
Put a local file onto the FTP server. It is placed in the current directory. If a remote file name is supplied, it is stored as that name on the server. If null is supplied, the server will generate a unique filename (via STOU) if it supports this option.

Specified by:
put in interface FTPClientInterface
Parameters:
localPath - path of the local file
remoteFile - name of remote file in current directory, or null if a unique filename is to be generated by the server
Returns:
The name of the remote file - normally the name supplied, or else the unique name generated by the server.
Throws:
java.io.IOException
FTPException

put

public java.lang.String put(java.io.InputStream srcStream,
                            java.lang.String remoteFile)
                     throws java.io.IOException,
                            FTPException
Description copied from interface: FTPClientInterface
Put a stream of data onto the FTP server. It is placed in the current directory. If a remote file name is supplied, it is stored as that name on the server. If null is supplied, the server will generate a unique filename (via STOU) if it supports this option.

Specified by:
put in interface FTPClientInterface
Parameters:
srcStream - input stream of data to put
remoteFile - name of remote file in current directory, or null if a unique filename is to be generated by the server
Returns:
The name of the remote file - normally the name supplied, or else the unique name generated by the server.
Throws:
java.io.IOException
FTPException

put

public java.lang.String put(java.lang.String localPath,
                            java.lang.String remoteFile,
                            boolean append)
                     throws java.io.IOException,
                            FTPException
Description copied from interface: FTPClientInterface
Put a local file onto the FTP server. It is placed in the current directory. If a remote file name is supplied, it is stored as that name on the server. If null is supplied, the server will generate a unique filename (via STOU) if it supports this option. Allows appending if current file exists.

Specified by:
put in interface FTPClientInterface
Parameters:
localPath - path of the local file
remoteFile - name of remote file in current directory, or null if a unique filename is to be generated by the server
append - true if appending, false otherwise
Returns:
The name of the remote file - normally the name supplied, or else the unique name generated by the server.
Throws:
java.io.IOException
FTPException

validateTransfer

public void validateTransfer()
                      throws java.io.IOException,
                             FTPException
Validate that the put() or get() was successful. This method is not for general use.

Throws:
java.io.IOException
FTPException

validateTransferOnError

protected void validateTransferOnError(java.io.IOException ex)
                                throws java.io.IOException,
                                       FTPException
Validate a transfer when an error has occurred on the data channel. Set a very short transfer in case things have hung. Set it back at the end.

Throws:
java.io.IOException
FTPException

closeDataSocket

protected void closeDataSocket(java.io.InputStream stream)
Close stream for data socket. Not for general use!

Parameters:
stream - stream reference

closeDataSocket

protected void closeDataSocket(java.io.OutputStream stream)
Close stream for data socket

Parameters:
stream - stream reference

setupDataSocket

protected void setupDataSocket()
                        throws java.io.IOException,
                               FTPException
Set up the data socket

Throws:
FTPException
java.io.IOException

initPut

protected java.lang.String initPut(java.lang.String remoteFile,
                                   boolean append)
                            throws java.io.IOException,
                                   FTPException
Request the server to set up the put

Parameters:
remoteFile - name of remote file in current directory
append - true if appending, false otherwise
Throws:
java.io.IOException
FTPException

put

public java.lang.String put(byte[] bytes,
                            java.lang.String remoteFile)
                     throws java.io.IOException,
                            FTPException
Description copied from interface: FTPClientInterface
Put data onto the FTP server. It is placed in the current directory. If a remote file name is supplied, it is stored as that name on the server. If null is supplied, the server will generate a unique filename (via STOU) if it supports this option.

Specified by:
put in interface FTPClientInterface
Parameters:
bytes - array of bytes
remoteFile - name of remote file in current directory, or null if a unique filename is to be generated by the server
Returns:
The name of the remote file - normally the name supplied, or else the unique name generated by the server.
Throws:
java.io.IOException
FTPException

put

public java.lang.String put(byte[] bytes,
                            java.lang.String remoteFile,
                            boolean append)
                     throws java.io.IOException,
                            FTPException
Description copied from interface: FTPClientInterface
Put data onto the FTP server. It is placed in the current directory. If a remote file name is supplied, it is stored as that name on the server. If null is supplied, the server will generate a unique filename (via STOU) if it supports this option. Allows appending if current file exists.

Specified by:
put in interface FTPClientInterface
Parameters:
bytes - array of bytes
remoteFile - name of remote file in current directory, or null if a unique filename is to be generated by the server
append - true if appending, false otherwise
Returns:
The name of the remote file - normally the name supplied, or else the unique name generated by the server.
Throws:
java.io.IOException
FTPException

postTransferChecks

protected void postTransferChecks(java.lang.String localPath,
                                  java.lang.String remotePath,
                                  FTPTransferType transferType,
                                  boolean append)
                           throws FTPException,
                                  java.io.IOException
Can be overridden by subclasses to do any necessary post transfer checking.

Parameters:
localPath - local file
remotePath - remote file
transferType - binary or ASCII
append -
Throws:
FTPException
java.io.IOException

postTransferChecks

protected void postTransferChecks(byte[] localBytes,
                                  java.lang.String remotePath,
                                  FTPTransferType transferType,
                                  boolean append)
                           throws FTPException,
                                  java.io.IOException
Can be overridden by subclasses to do any necessary post transfer checking.

Parameters:
localBytes - local bytes to transfer
remotePath - remote file
transferType - binary or ASCII
append -
Throws:
FTPException
java.io.IOException

get

public void get(java.io.OutputStream destStream,
                java.lang.String remoteFile)
         throws java.io.IOException,
                FTPException
Description copied from interface: FTPClientInterface
Get data from the FTP server. Uses the currently set transfer mode.

Specified by:
get in interface FTPClientInterface
Parameters:
destStream - data stream to write data to
remoteFile - name of remote file in current directory
Throws:
java.io.IOException
FTPException

resetTransferMode

public void resetTransferMode(FTPTransferType previousType)
                       throws java.io.IOException,
                              FTPException
Reset the transfer mode back to what it should be, if it has changed.

Parameters:
previousType - previous transfer type
Throws:
java.io.IOException
FTPException

initGet

protected void initGet(java.lang.String remoteFile)
                throws java.io.IOException,
                       FTPException
Request to the server that the get is set up

Parameters:
remoteFile - name of remote file
Throws:
java.io.IOException
FTPException

getInputStream

protected java.io.InputStream getInputStream()
                                      throws java.io.IOException
Get the data input stream. Not for general use!

Returns:
Throws:
java.io.IOException

getOutputStream

protected java.io.OutputStream getOutputStream()
                                        throws java.io.IOException
Get the data input stream. Not for general use!

Returns:
Throws:
java.io.IOException

get

public byte[] get(java.lang.String remoteFile)
           throws java.io.IOException,
                  FTPException
Description copied from interface: FTPClientInterface
Get data from the FTP server. Transfers in whatever mode we are in. Retrieve as a byte array. Note that we may experience memory limitations as the entire file must be held in memory at one time.

Specified by:
get in interface FTPClientInterface
Parameters:
remoteFile - name of remote file in current directory
Throws:
java.io.IOException
FTPException

site

public boolean site(java.lang.String command)
             throws java.io.IOException,
                    FTPException
Run a site-specific command on the server. Support for commands is dependent on the server

Parameters:
command - the site command to run
Returns:
true if command ok, false if command not implemented
Throws:
java.io.IOException
FTPException

list

public java.lang.String list(java.lang.String dirname)
                      throws java.io.IOException,
                             FTPException
Deprecated. As of FTP 1.1, replaced by dir(String)

List a directory's contents

Parameters:
dirname - the name of the directory (not a file mask)
Returns:
a string containing the line separated directory listing
Throws:
java.io.IOException
FTPException

list

public java.lang.String list(java.lang.String dirname,
                             boolean full)
                      throws java.io.IOException,
                             FTPException
Deprecated. As of FTP 1.1, replaced by dir(String,boolean)

List a directory's contents as one string. A detailed listing is available, otherwise just filenames are provided. The detailed listing varies in details depending on OS and FTP server.

Parameters:
dirname - the name of the directory(not a file mask)
full - true if detailed listing required false otherwise
Returns:
a string containing the line separated directory listing
Throws:
java.io.IOException
FTPException

setFTPFileFactory

public void setFTPFileFactory(FTPFileFactory fileFactory)
Override the chosen file factory with a user created one - meaning that a specific parser has been selected

Parameters:
fileFactory -

setParserLocale

public void setParserLocale(java.util.Locale locale)
Deprecated. @see FTPClient#setParserLocales(Locale[])

Set the locale for date parsing of dir listings

Parameters:
locale - new locale to use

setParserLocales

public void setParserLocales(java.util.Locale[] locales)
Set the list of locales to be tried for date parsing of dir listings

Parameters:
locales - locales to use

fileDetails

public FTPFile fileDetails(java.lang.String name)
                    throws java.io.IOException,
                           FTPException,
                           java.text.ParseException
Uses the MLST command to find out details about the named file. A single filename should be supplied. Note that the MLST command is not supported by many servers, and the fallback is to use the SIZE and MDTM commands.

Parameters:
name - name of a file
Returns:
if it exists, an FTPFile object
Throws:
java.io.IOException
FTPException
java.text.ParseException

dirDetails

public void dirDetails(java.lang.String dirname,
                       DirectoryListCallback lister)
                throws java.io.IOException,
                       FTPException,
                       java.text.ParseException
Description copied from interface: FTPClientInterface
List a directory's contents via a callback. The callback is notified for each directory entry, meaning they can be processed individually. It also avoids out of memory problems if the directory is huge, and an array of thousands of FTPFile objects would otherwise be returned.

Specified by:
dirDetails in interface FTPClientInterface
Parameters:
dirname - name of directory (some servers permit a filemask)
lister - callback to be notified of errors
Throws:
java.io.IOException
FTPException
java.text.ParseException

dirDetails

public FTPFile[] dirDetails(java.lang.String dirname)
                     throws java.io.IOException,
                            FTPException,
                            java.text.ParseException
Description copied from interface: FTPClientInterface
List a directory's contents as an array of FTPFile objects. Should work for Windows and most Unix FTP servers - let us know about unusual formats (http://www.enterprisedt.com/forums/index.php). If accurate timestamps are required (i.e. to the second), it is generally better to use @see #modtime(String).

Specified by:
dirDetails in interface FTPClientInterface
Parameters:
dirname - name of directory (some servers permit a filemask)
Returns:
an array of FTPFile objects
Throws:
java.io.IOException
FTPException
java.text.ParseException

dir

public java.lang.String[] dir()
                       throws java.io.IOException,
                              FTPException
Description copied from interface: FTPClientInterface
List current directory's contents as an array of strings of filenames.

Specified by:
dir in interface FTPClientInterface
Returns:
an array of current directory listing strings
Throws:
java.io.IOException
FTPException

dir

public java.lang.String[] dir(java.lang.String dirname)
                       throws java.io.IOException,
                              FTPException
Description copied from interface: FTPClientInterface
List a directory's contents as an array of strings of filenames.

Specified by:
dir in interface FTPClientInterface
Parameters:
dirname - name of directory OR filemask
Returns:
an array of directory listing strings
Throws:
java.io.IOException
FTPException

dir

public java.lang.String[] dir(java.lang.String dirname,
                              boolean full)
                       throws java.io.IOException,
                              FTPException
Description copied from interface: FTPClientInterface
List a directory's contents as an array of strings. A detailed listing is available, otherwise just filenames are provided. The detailed listing varies in details depending on OS and FTP server. Note that a full listing can be used on a file name to obtain information about a file

Specified by:
dir in interface FTPClientInterface
Parameters:
dirname - name of directory OR filemask
full - true if detailed listing required false otherwise
Returns:
an array of directory listing strings
Throws:
java.io.IOException
FTPException

readChunk

public int readChunk(java.io.BufferedInputStream in,
                     byte[] chunk,
                     int chunksize)
              throws java.io.IOException
Attempts to read a specified number of bytes from the given InputStream and place it in the given byte-array. The purpose of this method is to permit subclasses to execute any additional code necessary when performing this operation.

Parameters:
in - The InputStream to read from.
chunk - The byte-array to place read bytes in.
chunksize - Number of bytes to read.
Returns:
Number of bytes actually read.
Throws:
java.io.IOException - Thrown if there was an error while reading.

readChunk

public int readChunk(java.io.BufferedInputStream in,
                     byte[] chunk,
                     int offset,
                     int chunksize)
              throws java.io.IOException
Attempts to read a specified number of bytes from the given InputStream and place it in the given byte-array. The purpose of this method is to permit subclasses to execute any additional code necessary when performing this operation.

Parameters:
in - The InputStream to read from.
chunk - The byte-array to place read bytes in.
offset - Offset into chunk
chunksize - Number of bytes to read.
Returns:
Number of bytes actually read.
Throws:
java.io.IOException - Thrown if there was an error while reading.

readChar

protected int readChar(java.io.LineNumberReader in)
                throws java.io.IOException
Attempts to read a single character from the given InputStream. The purpose of this method is to permit subclasses to execute any additional code necessary when performing this operation.

Parameters:
in - The LineNumberReader to read from.
Returns:
The character read.
Throws:
java.io.IOException - Thrown if there was an error while reading.

readLine

protected java.lang.String readLine(java.io.LineNumberReader in)
                             throws java.io.IOException
Attempts to read a single line from the given InputStream. The purpose of this method is to permit subclasses to execute any additional code necessary when performing this operation.

Parameters:
in - The LineNumberReader to read from.
Returns:
The string read.
Throws:
java.io.IOException - Thrown if there was an error while reading.

getLastValidReply

public FTPReply getLastValidReply()
Gets the latest valid reply from the server

Returns:
reply object encapsulating last valid server response

getLastReply

public FTPReply getLastReply()
Gets the last reply from the server, whether valid or not

Returns:
reply object encapsulating last server response

getType

public FTPTransferType getType()
Get the current transfer type

Specified by:
getType in interface FTPClientInterface
Returns:
the current type of the transfer, i.e. BINARY or ASCII

setType

public void setType(FTPTransferType type)
             throws java.io.IOException,
                    FTPException
Set the transfer type

Specified by:
setType in interface FTPClientInterface
Parameters:
type - the transfer type to set the server to
Throws:
java.io.IOException
FTPException

delete

public void delete(java.lang.String remoteFile)
            throws java.io.IOException,
                   FTPException
Description copied from interface: FTPClientInterface
Delete the specified remote file

Specified by:
delete in interface FTPClientInterface
Parameters:
remoteFile - name of remote file to delete
Throws:
java.io.IOException
FTPException

rename

public void rename(java.lang.String from,
                   java.lang.String to)
            throws java.io.IOException,
                   FTPException
Description copied from interface: FTPClientInterface
Rename a file or directory

Specified by:
rename in interface FTPClientInterface
Parameters:
from - name of file or directory to rename
to - intended name
Throws:
java.io.IOException
FTPException

rmdir

public void rmdir(java.lang.String dir)
           throws java.io.IOException,
                  FTPException
Description copied from interface: FTPClientInterface
Delete the specified remote working directory

Specified by:
rmdir in interface FTPClientInterface
Parameters:
dir - name of remote directory to delete
Throws:
java.io.IOException
FTPException

mkdir

public void mkdir(java.lang.String dir)
           throws java.io.IOException,
                  FTPException
Description copied from interface: FTPClientInterface
Create the specified remote working directory

Specified by:
mkdir in interface FTPClientInterface
Parameters:
dir - name of remote directory to create
Throws:
java.io.IOException
FTPException

chdir

public void chdir(java.lang.String dir)
           throws java.io.IOException,
                  FTPException
Description copied from interface: FTPClientInterface
Change the remote working directory to that supplied

Specified by:
chdir in interface FTPClientInterface
Parameters:
dir - name of remote directory to change to
Throws:
java.io.IOException
FTPException

cdup

public void cdup()
          throws java.io.IOException,
                 FTPException
Description copied from interface: FTPClientInterface
Change the remote working directory to the parent directory

Specified by:
cdup in interface FTPClientInterface
Throws:
java.io.IOException
FTPException

modtime

public java.util.Date modtime(java.lang.String remoteFile)
                       throws java.io.IOException,
                              FTPException
Description copied from interface: FTPClientInterface
Get modification time for a remote file. For accurate modification times (e.g. to the second) this method is to be preferred over @see #dirDetails(java.lang.String) which parses a listing returned by the server. The time zone is UTC.

Specified by:
modtime in interface FTPClientInterface
Parameters:
remoteFile - name of remote file
Throws:
java.io.IOException
FTPException

setModTime

public void setModTime(java.lang.String remoteFile,
                       java.util.Date modTime)
                throws java.io.IOException,
                       FTPException
Description copied from interface: FTPClientInterface
Set the last modified time (UTC) for the supplied file. This is not supported by all servers.

Specified by:
setModTime in interface FTPClientInterface
Parameters:
remoteFile - the path to the file/directory on the remote server
modTime - the time stamp to set the modified time to in UTC
Throws:
java.io.IOException
FTPException

pwd

public java.lang.String pwd()
                     throws java.io.IOException,
                            FTPException
Description copied from interface: FTPClientInterface
Get the current remote working directory

Specified by:
pwd in interface FTPClientInterface
Returns:
the current working directory
Throws:
java.io.IOException
FTPException

features

public java.lang.String[] features()
                            throws java.io.IOException,
                                   FTPException
Get the server supplied features

Returns:
string containing server features, or null if no features or not supported
Throws:
java.io.IOException
FTPException

system

public java.lang.String system()
                        throws java.io.IOException,
                               FTPException
Get the type of the OS at the server

Specified by:
system in interface FTPClientInterface
Returns:
the type of server OS
Throws:
java.io.IOException
FTPException

noOperation

public void noOperation()
                 throws java.io.IOException,
                        FTPException
Send a "no operation" message that does nothing. Can be called periodically to prevent the connection timing out

Throws:
java.io.IOException
FTPException

stat

public java.lang.String stat()
                      throws java.io.IOException,
                             FTPException
Sends stat message to enquire about the status of a transfer.

Throws:
java.io.IOException
FTPException

sendServerWakeup

public void sendServerWakeup()
                      throws java.io.IOException,
                             FTPException
Wake up the server during a transfer to prevent a timeout from occuring. This may hang or confuse the server - use with caution.

Throws:
java.io.IOException
FTPException

keepAlive

public void keepAlive()
               throws java.io.IOException,
                      FTPException
Tries to keep the current connection alive by sending an innocuous command to signal that the client is still active

Specified by:
keepAlive in interface FTPClientInterface
Throws:
java.io.IOException
FTPException

help

public java.lang.String help(java.lang.String command)
                      throws java.io.IOException,
                             FTPException
Get the help text for the specified command

Parameters:
command - name of the command to get help on
Returns:
help text from the server for the supplied command
Throws:
java.io.IOException
FTPException

abort

protected void abort()
              throws java.io.IOException,
                     FTPException
Abort the current action

Throws:
java.io.IOException
FTPException

quit

public void quit()
          throws java.io.IOException,
                 FTPException
Description copied from interface: FTPClientInterface
Quit the FTP session

Specified by:
quit in interface FTPClientInterface
Throws:
java.io.IOException
FTPException

quitImmediately

public void quitImmediately()
                     throws java.io.IOException,
                            FTPException
Description copied from interface: FTPClientInterface
Quit the FTP session immediately. If a transfer is underway it will be terminated.

Specified by:
quitImmediately in interface FTPClientInterface
Throws:
java.io.IOException
FTPException

toString

public java.lang.String toString()
String representation

Overrides:
toString in class java.lang.Object


Copyright (c) 2001-2007 Enterprise Distributed Technologies Ltd. All Rights Reserved.