Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.enterprisedt.net.ftp
Class FTPClient

    java.lang.Object
      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.104 $
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
`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_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 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 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 void` | `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.
`java.lang.String` | `executeCommand(java.lang.String command)` Request that the remote server execute the literal command supplied.
`boolean` | `exists(java.lang.String remoteFile)` Does the named file exist in the current server directory?
`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` | `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
`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
`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
`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 commmand 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.
`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.
`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` | `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` | `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` | `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` | `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_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

### monitorInterval

    protected long monitorInterval

  Bytes transferred in between monitor callbacks

### transferBufferSize

    protected int transferBufferSize

  Size of transfer buffers

### 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

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`

### 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

### 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 void 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

  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.

### 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`

### exists

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

  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`

### 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`

### 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`

### 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.

  Parameters:
    `name` - name of a file
  Returns:
    if it exists, an FTPFile object
  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.

### 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 commmand 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`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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