com.jscape.inet.ftps

## Class Ftps

- java.lang.Object
- - com.jscape.inet.ftps.Ftps

- All Implemented Interfaces:
    java.lang.AutoCloseable

      public class Ftps
      extends java.lang.Object
      implements java.lang.AutoCloseable

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

  Example Usage:

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

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

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

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static interface` | `Ftps.ConnectionStrategy` The FTP client connection strategy.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `ASCII` Flag to indicate that ASCII transfer mode is used.
    `static Ftps.ConnectionStrategy` | `AUTH_SSL` Connection type for AUTH SSL FTP session.
    `static Ftps.ConnectionStrategy` | `AUTH_TLS` Connection type for AUTH TLS FTP session (default).
    `static int` | `AUTO` Flag to indicate that automatic transfer mode detection is used.
    `static int` | `BINARY` Flag to indicate that BINARY transfer mode is used.
    `static java.lang.String` | `CURRENT_DIR` Represents the current directory.
    `static Ftps.ConnectionStrategy` | `IMPLICIT_SSL` Connection type for implicit SSL session.
    `static java.lang.String` | `UP_DIR` Represents the parent directory of current directory.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Ftps()` Creates a new Ftps instance.
    `Ftps(java.lang.String host, java.lang.String user, java.lang.String pwd)` Creates a new Ftps instance.
    `Ftps(java.lang.String host, java.lang.String user, java.lang.String pwd, java.io.File localDirectory)` Creates new Ftp instance.
    `Ftps(java.lang.String host, java.lang.String user, java.lang.String pwd, int port)` Creates a new Ftp instance.
    `Ftps(java.lang.String host, java.lang.String user, java.lang.String pwd, java.lang.String account)` Creates a new Ftps instance.

  - ### Method Summary

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

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### AUTO

          public static final int AUTO

      Flag to indicate that automatic transfer mode detection is used.
      See Also:
        `getMode()`, Constant Field Values

    - #### ASCII

          public static final int ASCII

      Flag to indicate that ASCII transfer mode is used.
      See Also:
        `getMode()`, Constant Field Values

    - #### BINARY

          public static final int BINARY

      Flag to indicate that BINARY transfer mode is used.
      See Also:
        `getMode()`, Constant Field Values

    - #### CURRENT_DIR

          public static final java.lang.String CURRENT_DIR

      Represents the current directory. Value of "."
      See Also:
        Constant Field Values

    - #### UP_DIR

          public static final java.lang.String UP_DIR

      Represents the parent directory of current directory. Value of ".."
      See Also:
        Constant Field Values

    - #### IMPLICIT_SSL

          public static final Ftps.ConnectionStrategy IMPLICIT_SSL

      Connection type for implicit SSL session.

    - #### AUTH_TLS

          public static final Ftps.ConnectionStrategy AUTH_TLS

      Connection type for AUTH TLS FTP session (default).

    - #### AUTH_SSL

          public static final Ftps.ConnectionStrategy AUTH_SSL

      Connection type for AUTH SSL FTP session.

  - ### Constructor Detail

    - #### Ftps

          public Ftps()

      Creates a new Ftps instance.

    - #### Ftps

          public Ftps(java.lang.String host,
                      java.lang.String user,
                      java.lang.String pwd)

      Creates a new Ftps instance.
      Parameters:
        `host` - the hostname of FTP server
        `user` - the username of FTP user
        `pwd` - the password of FTP usZer

    - #### Ftps

          public Ftps(java.lang.String host,
                      java.lang.String user,
                      java.lang.String pwd,
                      java.lang.String account)

      Creates a new Ftps instance.
      Parameters:
        `host` - the hostname of FTP server
        `user` - the username of FTP user
        `pwd` - the password of FTP user
        `account` - the optional account of FTP user or `null` if not needed

    - #### Ftps

          public Ftps(java.lang.String host,
                      java.lang.String user,
                      java.lang.String pwd,
                      int port)

      Creates a new Ftp instance.
      Parameters:
        `host` - the hostname of FTP server
        `user` - the username of FTP user
        `pwd` - the password of FTP user
        `port` - the port of FTP server

    - #### Ftps

          public Ftps(java.lang.String host,
                      java.lang.String user,
                      java.lang.String pwd,
                      java.io.File localDirectory)

      Creates new Ftp instance.
      Parameters:
        `host` - the hostname of FTP server
        `user` - the username of FTP user
        `pwd` - the password of FTP user
        `localDirectory` - the local directory to be used for uploading / downloading files

  - ### Method Detail

    - #### setTimezone

          public void setTimezone(java.util.TimeZone timeZone)

      Set the timezone. This is used for file timestamps.
      Parameters:
        `timeZone` -

    - #### getTimeZone

          public java.util.TimeZone getTimeZone()

      Get the associated timezone. This is used for file timestamps. Default is GMT
      Returns:
        timezone

    - #### setPreserveDownloadTimestamp

          public void setPreserveDownloadTimestamp(boolean value)

      Set the preserve download timestamp value.
      Parameters:
        `value` -

    - #### getPreserveDownloadTimestamp

          public boolean getPreserveDownloadTimestamp()

      Get preserve download timestamp.
      Returns:
        boolean value

    - #### getPreserveUploadTimestamp

          public boolean getPreserveUploadTimestamp()

      Get upload modification time.
      Returns:
        - boolean value

    - #### setPreserveUploadTimestamp

          public void setPreserveUploadTimestamp(boolean value)

      Set upload modification time, replaces the last modified timestamp with that of the local file after upload is complete.
      Parameters:
        `value` - - boolean value

    - #### setProxyAuthentication

          public void setProxyAuthentication(java.lang.String proxyUsername,
                                             java.lang.String proxyPassword)

      Sets the username and password to use when for authentication with proxy server. To clear these settings invoke the `#clearProxySettings` method.
      Parameters:
        `proxyUsername` - the proxy username
        `proxyPassword` - the proxy password
      See Also:
        `clearProxySettings()`

    - #### setAutoDetectIpv6

          public void setAutoDetectIpv6(boolean value)

      Set auto detect Ipv6 detection mode.
      Parameters:
        `value` -

    - #### getAutoDetectIpv6

          public boolean getAutoDetectIpv6()

      Get auto detect Ipv6 detection mode.
      Returns:

    - #### getProxyUsername

          public java.lang.String getProxyUsername()

      Get proxy username.
      Returns:
        username

    - #### getProxyPassword

          public java.lang.String getProxyPassword()

      Get proxy password.
      Returns:
        password

    - #### getProxyHostname

          public java.lang.String getProxyHostname()

      Get proxy hostname.
      Returns:
        proxy hostname

    - #### getProxyPort

          public int getProxyPort()

      Get proxy port.
      Returns:
        port.

    - #### setProxyHost

          public void setProxyHost(java.lang.String proxyHostname,
                                   int proxyPort)

      Sets the proxy hostname and port for this FTPS connection. To clear these settings invoke the `#clearProxySettings` method.
      Parameters:
        `proxyHostname` - the hostname or ip address of the proxy server
        `proxyPort` - the port of the proxy server
      See Also:
        `clearProxySettings()`

    - #### setProxyType

          public void setProxyType(java.lang.String proxyType)

      Sets the proxy type will be used for this FTPS connection.
      Parameters:
        `proxyType` - The proxy type. Valid values: HTTP, SOCKS5

    - #### getProxyType

          public java.lang.String getProxyType()

      Get proxy type.
      Returns:
        proxy

    - #### clearProxySettings

          public void clearProxySettings()

      Clears proxy server values.

    - #### setAscii

          public void setAscii()
                        throws FtpException

      Sets data transfer mode to ASCII. You must be connected to the FTP server prior to invoking this method.
      Throws:
        `FtpException` - if an I/O or FTP error occurs.

    - #### setAuto

          public void setAuto(boolean auto)
                       throws FtpException

      Sets data transfer mode to automatic detect. Any files with a base Content-Type value of text will be transferred using ASCII, all other files will be transfered using binary.

      Example: file.txt, Content-Type = text/plain, uploaded using ASCII
      Example: image.jpg Content-Type = image/jpg, uploaded using binary
      Parameters:
        `auto` - `true` to turn automatic detect on `false` to turn off
      Throws:
        `FtpException` - if an I/O or Ftp related error occurs

    - #### setBinary

          public void setBinary()
                         throws FtpException

      Sets data transfer mode to binary. You must be connected to the FTP server prior to invoking this method.
      Throws:
        `FtpException` - if an I/O or FTP error occurs.

    - #### setBlockTransferSize

          public void setBlockTransferSize(int blockSize)

      Sets block size for use in transferring files. Default block size is 8192 bytes.
      Parameters:
        `blockSize` - the block size in bytes

    - #### getBlockTransferSize

          public int getBlockTransferSize()

      Gets blocksize for use in transferring files. Default block size is 8192 bytes.
      Returns:
        blocksize in bytes

    - #### setCharacterEncoding

          public void setCharacterEncoding(java.lang.String encoding)

      Deprecated. use the setWireEncoding method
      Sets character set used when issuing commands and transferring files. This is helpful in instances where the FTP server uses a different character encoding than that used by the FTP client.
      Parameters:
        `encoding` - the character encoding to be used

    - #### getCharacterEncoding

          public java.lang.String getCharacterEncoding()

      Deprecated. use the getWireEncoding method
      Gets character encoding used when issuing commands and transferring files.
      Returns:
        the character encoding to be used

    - #### setCompression

          public void setCompression(boolean compression)

      Sets whether the data will be compressed during the transfer.
      Parameters:
        `compression` - Compression indicator.

    - #### getCompression

          public boolean getCompression()

      Gets whether the data is compressed during the transfering. The data will be compressed if the Ftps server support this feature (MODE Z command)
      Returns:
        `true` data will be compressed, `false` otherwise.

    - #### setClientCertificates

          public void setClientCertificates(java.security.KeyStore keystore,
                                            java.lang.String password)
                                     throws FtpException

      Sets optional client certificate to be used during authentication.
      Parameters:
        `keystore` - the JKS keystore containing certificates
        `password` - the password for opening JKS keystore
      Throws:
        `FtpException` - if an error occurs opening keystore

    - #### setClientCertificates

          public void setClientCertificates(java.lang.String filename,
                                            java.lang.String password)
                                     throws FtpException

      Sets optional client certificate to be used during authentication. Default expected keystore format is JKS format. Existing certificate may be imported into keystore using the `keytool` utility provided in the Sun JDK.

      Example:

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

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

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

    - #### setClientCertificates

          public void setClientCertificates(java.lang.String filename,
                                            java.lang.String password,
                                            java.lang.String storetype)
                                     throws FtpException

      Sets optional client certificate to be used during authentication. Default expected keystore format is JKS format. Existing certificate may be imported into keystore using the `keytool` utility provided in the Sun JDK.

      Example:

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

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

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

    - #### setConnectBeforeCommand

          public void setConnectBeforeCommand(boolean value)

      Gets whether connection will be established before sending data transfer command.
      Parameters:
        `value` - `true` if should connect before sending data transfer command, `false` otherwise send the command in passive mode

    - #### getConnectBeforeCommand

          public boolean getConnectBeforeCommand()

      Gets whether connection will be established before sending data transfer command.
      Returns:
        `true` if should connect before sending data transfer command, `false` otherwise

    - #### isConnected

          public boolean isConnected()

      Checks if client is connected to FTP server. To check if FTP client is connected to FTP server a NOOP (No Operation) command is sent to the FTP server. If connection has been lost then a value of `false` will be returned and an `FtpConnectionLostEvent` will be fired to any subscribed `FtpListener`.
      Returns:
        `true` if connected `false` otherwise
      See Also:
        `FtpConnectionLostEvent`

    - #### setConnectionType

          public void setConnectionType(Ftps.ConnectionStrategy connectionType)

      Sets the connection type. Default connection type is `Ftps.AUTH_TLS`.
      Parameters:
        `connectionType` - the current connection type

    - #### getConnectionType

          public Ftps.ConnectionStrategy getConnectionType()

      Returns the current connection type. Default connection type is `Ftps.AUTH_TLS`.
      Returns:
        the current connection type

    - #### setContext

          public void setContext(javax.net.ssl.SSLContext context)

      Sets the current SSL context.
      Parameters:
        `context` - the new SSL context
      See Also:
        `SSLContext`

    - #### getListeners

          public java.util.LinkedList getListeners()

      Get listeners.
      Returns:
        list of listeners.

    - #### setListeners

          public void setListeners(java.util.LinkedList listeners)

      Set the list of listeners.
      Parameters:
        `listeners` -

    - #### setProtocol

          public void setProtocol(java.lang.String value)

      Sets TLS/SSL protocol name.
      Parameters:
        `value` - a protocol name

    - #### setContextKeystoreProvider

          public void setContextKeystoreProvider(java.lang.String provider)

      Sets provider used for keystore in default context.
      Parameters:
        `provider` - The provider

    - #### setContextProtocolProvider

          public void setContextProtocolProvider(java.lang.String provider)

      Sets provider used for TLS protocol in default context.
      Parameters:
        `provider` - the provider

    - #### setContextAlgorithmProvider

          public void setContextAlgorithmProvider(java.lang.String provider)

      Sets provider used for X509 algorithm in default context.
      Parameters:
        `provider` - the provider

    - #### getContextAlgorithmProvider

          public java.lang.String getContextAlgorithmProvider()

      Gets provider used for X509 algorithm in default context.
      Returns:
        algorithm provider

    - #### getContextKeystoreProvider

          public java.lang.String getContextKeystoreProvider()

      Gets keystore provider used for default context. Default is `null`.
      Returns:
        keystore provider

    - #### getContextProtocolProvider

          public java.lang.String getContextProtocolProvider()

      Gets provider used for TLS protocol in default context. Default is `null`.
      Returns:
        protocol provider

    - #### setContextAlgorithm

          public void setContextAlgorithm(java.lang.String algorithm)

      Sets algorithm used for SSL communications in default context. Default is SunX509.
      Parameters:
        `algorithm` - the algorithm

    - #### getContextAlgorithm

          public java.lang.String getContextAlgorithm()

      Gets algorithm used for SSL communications in default context. Default is SunX509.
      Returns:
        algorithm

    - #### setContextProtocol

          public void setContextProtocol(java.lang.String protocol)

      Sets protocol used for SSL communications in default context. Default is TLS.
      Parameters:
        `protocol` - the protocol

    - #### getContextProtocol

          public java.lang.String getContextProtocol()

      Gets protocol used for SSL communications in default context. Default is TLS.
      Returns:
        protocol

    - #### getContext

          public javax.net.ssl.SSLContext getContext()

      Obtains the current SSL context.
      Returns:
        the current SSL context
      See Also:
        `SSLContext`

    - #### setDataPort

          public void setDataPort(int dataPort)

      Deprecated. Replaced by setDataPortRange
      Sets data port for incoming active PORT connections.
      Parameters:
        `dataPort` - active port

    - #### getDataPort

          public int getDataPort()

      Deprecated. Replaced by getDataPortStart and getDataPortEnd
      Returns current port for incoming active PORT data connections.
      Returns:
        active port

    - #### getDataPortEnd

          public int getDataPortEnd()

      Gets the data port end range for incoming non-passive (active) data connections.
      Returns:
        the end data port range for incoming data connections

    - #### setDataPortRange

          public void setDataPortRange(int dataPortStart,
                                       int dataPortEnd)

      Sets the data port range for incoming non-passive (active) connections.
      Parameters:
        `dataPortStart` - start data port range for incoming connections
        `dataPortEnd` - end data port range for incoming connections

    - #### getDataPortStart

          public int getDataPortStart()

      Gets the data port start range for incoming non-passive (active) data connections.
      Returns:
        the start data port range for incoming data connections

    - #### setDebug

          public void setDebug(boolean debug)

      Sets debugging state.

      All debug statements are reported to debug stream. Default debug stream is `System.out`.
      Parameters:
        `debug` - `true` to turn debugging on
      See Also:
        `setDebugStream(java.io.PrintStream)`

    - #### getDebug

          public boolean getDebug()

      Gets debugging state.
      Returns:
        `true` if debugging is on

    - #### setDebugStream

          public void setDebugStream(java.io.PrintStream debugStream)

      Sets PrintStream used in reporting debug statements. Default `PrintStream` is `System.out`
      Parameters:
        `debugStream` - the `PrintStream` to send debug statements to
      See Also:
        `PrintStream`

    - #### getDebugStream

          public java.io.PrintStream getDebugStream()

      Gets PrintStream used in reporting debug statements. Default `PrintStream` is `System.out`.
      Returns:
        the `PrintStream` used in reporting debug statements
      See Also:
        `PrintStream`

    - #### setDir

          public void setDir(java.lang.String remoteDirectory)
                      throws FtpException

      Sets current directory on FTP server.
      Parameters:
        `remoteDirectory` - the remote directory
      Throws:
        `FtpException` - if an I/O or FTP error occurs.

    - #### getDir

          public java.lang.String getDir()
                                  throws FtpException

      Gets current working directory of FTP server.
      Returns:
        current directory
      Throws:
        `FtpException` - if an I/O or FTP error occurs.

    - #### getDirListing

          public java.util.Enumeration getDirListing(java.lang.String filter)
                                              throws FtpException

      Gets file listing of files matching filter criteria. When using this method filter is passed to server and server is responsible for parsing filter. Servers may vary in how they handle these filters. For a client side filter use the `getDirListingRegex` method which uses regular expressions to parse results of a directory listing.

      Parsers are included to handle UNIX, NT and VMS directory style listings. If you are connecting to a FTP server that does not use any of these listing formats then you can optionally develop your own parser by extending the `FtpFileParser` class, or use some of the alternative methods for obtaining a directory listing such as the `getNameListing` or `getDirListingAsString` methods.
      Parameters:
        `filter` - the regular expression filename filter
      Returns:
        an `Enumeration` of `FtpFile` objects
      Throws:
        `FtpException` - if an I/O or FTP error occurs.
      See Also:
        `FtpFile`, `getDirListingAsString(String)`, `getDirListingRegex(String)`, `getNameListing(java.lang.String)`, `FtpFileParser`, `UnixParser`, `NTParser`, `VMSParser`

    - #### getDirListing

          public java.util.Enumeration getDirListing()
                                              throws FtpException

      Gets directory listing from FTP server.

      Parsers are included to handle UNIX, NT and VMS directory style listings. If you are connecting to a FTP server that does not use any of these listing formats then you can optionally develop your own parser by extending the `FtpFileParser` class, or use some of the alternative methods for obtaining a directory listing such as the `getNameListing` or `getDirListingAsString` methods.
      Returns:
        an `Enumeration` of `FtpFile` objects
      Throws:
        `FtpException` - if an I/O or FTP error occurs.
      See Also:
        `FtpFile`, `getDirListingAsString(String)`, `getNameListing(java.lang.String)`, `FtpFileParser`, `UnixParser`, `NTParser`, `VMSParser`

    - #### getDirListingAsString

          public java.lang.String getDirListingAsString(java.lang.String filter)
                                                 throws FtpException

      Gets raw directory listing of files matching filter criteria. When using this method filter is passed to server and server is responsible for parsing filter. Servers may vary in how they handle these filters. For a client side filter use the `getDirListingRegex` method which uses regular expressions to parse results of a directory listing.
      Parameters:
        `filter` - a regular expression filename filter
      Returns:
        a directory listing
      Throws:
        `FtpException` - if an I/O or FTP error occurs.
      See Also:
        `getDirListingRegex(String)`

    - #### getDirListingRegex

          public java.util.Enumeration getDirListingRegex(java.lang.String filter)
                                                   throws FtpException

      Gets directory listing from FTP server returning only file and directory names that match the regular expression.

      For example, to list all files with extension .java or .class the regex value should be ".+\\.(?:java|class)".
      Parameters:
        `filter` - regular expression used to obtain the file list
      Returns:
        file list which matches the regular expression
      Throws:
        `FtpException` - if an I/O or protocol error occurs.

    - #### getDirListingRegexAsString

          public java.lang.String getDirListingRegexAsString(java.lang.String filter)
                                                      throws FtpException

      Gets directory listing from FTP server returning only file and directory names that match the regular expression.

      For example, to list all files with extension .java or .class the regex value should be ".+\\.(?:java|class)".
      Parameters:
        `filter` - regular expression used to obtain the file list
      Returns:
        raw directory listing as `String`
      Throws:
        `FtpException` - if an I/O or protocol error occurs.

    - #### getDirListingAsString

          public java.lang.String getDirListingAsString()
                                                 throws FtpException

      Gets raw directory listing of files on FTP server.
      Returns:
        a directory listing
      Throws:
        `FtpException` - if an I/O or FTP error occurs.

    - #### setDirUp

          public void setDirUp()
                        throws FtpException

      Sets current directory on FTP server to parent directory.
      Throws:
        `FtpException` - if an I/O or FTP error occurs.

    - #### setDiskEncoding

          public void setDiskEncoding(java.lang.String encoding)

      Sets character set used when reading data from disk for ASCII file transfer.
      Parameters:
        `encoding` - the character encoding to be used

    - #### getDiskEncoding

          public java.lang.String getDiskEncoding()

      Gets character encoding used when reading data from disk for ASCII file transfer.
      Returns:
        the character encoding to be used

    - #### setEnabledCiphers

          public void setEnabledCiphers(java.lang.String[] enabledCiphers)

      Sets user-defined enabled SSL cipher suites.
      Parameters:
        `enabledCiphers` - enabled SSL cipher suites or `null` for using system-default cipher suites set

    - #### getEnabledCiphers

          public java.lang.String[] getEnabledCiphers()

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

    - #### setErrorOnSizeCommand

          public void setErrorOnSizeCommand(boolean error)

      Sets whether an exception should be thrown when downloading a file and server does not support SIZE command. The SIZE command is used to obtain the length of remote file for use in firing progress events. Default is `false`.
      Parameters:
        `error` - `true` if exception should be thrown, `false` otherwise

    - #### getErrorOnSizeCommand

          public boolean getErrorOnSizeCommand()

      Gets whether an exception should be thrown when downloading a file and server does not support SIZE command. The SIZE command is used to obtain the length of remote file for use in firing progress events. Default is `false`.
      Returns:
        `true` if exception is thrown when SIZE command is not supported an exception when it caused an error, `false` the error will be ignored.

    - #### isFeatureSupported

          public boolean isFeatureSupported(java.lang.String command)

      Looks for the command argument into the server features list to validate if it is supported
      Parameters:
        `command` - The feature will be searched
      Returns:
        `true` if the command is found into the server feature list; `false` otherwise

    - #### getFeatures

          public java.util.Enumeration getFeatures()
                                            throws FtpException

      Returns supported server features.
      Returns:
        an `Enumeration` of features strings
      Throws:
        `FtpException` - if an error occurs

    - #### setFileModificationTime

          public void setFileModificationTime(java.lang.String remoteName,
                                              java.util.Date date)
                                       throws FtpException

      Sets the file modification time with a new value. This command is not specified in RFC 959 and it is not support by many Ftp servers.
      Parameters:
        `remoteName` - File will be modified its modification time.
        `date` - The new modification time
      Throws:
        `FtpException` - If an error occurs

    - #### setFileCreationTime

          public void setFileCreationTime(java.lang.String remoteName,
                                          java.util.Date date)
                                   throws FtpException

      Sets file creation time with a new value. This command is not specified in RFC 959 and it is not support by many Ftp servers.
      Parameters:
        `remoteName` - File will be modified its creation time.
        `date` - The new creation time
      Throws:
        `FtpException` - If an error occurs.

    - #### setFileTimestamp

          public void setFileTimestamp(java.lang.String remoteName,
                                       java.util.Date dateFile)
                                throws FtpException

      Sets date/timestamp of remote file from FTP server. This feature is not supported by RFC-959 so may not work on all FTP servers.
      Parameters:
        `remoteName` - the remote file
        `dateFile` - the date/timestamp of remote file
      Throws:
        `FtpException` - if an I/O or FTP error occurs.

    - #### getFileTimestamp

          public java.util.Date getFileTimestamp(java.lang.String remoteFile)
                                          throws FtpException

      Gets date/timestamp of remote file from FTP server. This feature is not supported by RFC-959 so may not work on all FTP servers.
      Parameters:
        `remoteFile` - the remote file
      Returns:
        date the date/timestamp of remote file
      Throws:
        `FtpException` - if an I/O or FTP error occurs.

    - #### getFilesize

          public long getFilesize(java.lang.String remoteFile)
                           throws FtpException

      Gets filesize of remote file from FTP server as represented in ASCII. This feature is not supported by RFC-959 so may not work on all FTP servers. For larger files it may take some time to return as server will often convert file to ASCII before returning a filesize.
      Parameters:
        `remoteFile` - the remote file
      Returns:
        filesize in bytes
      Throws:
        `FtpException` - if an I/O or FTP error occurs.

    - #### setFtpFileParser

          public void setFtpFileParser(FtpFileParser parser)

      Sets the `FtpFileParser` used to parse directory listing returned when invoking `Ftps#getDirListing` method. If `FtpFileParser` is `null` upon establishing connection the `Ftps` class will attempt to determine the proper `FtpFileParser` based on information retrieved from the FTP server. If the `FtpFileParser` is `null` and cannot be determined otherwise then by default an instance of `UnixParser` will be used. Upon disconnecting from FTP server the `FtpFileParser` will be reset to `null`.
      Parameters:
        `parser` - a `FtpFileParser` instance
      See Also:
        `FtpFileParser`, `UnixParser`, `NTParser`, `VMSParser`

    - #### getFtpFileParser

          public FtpFileParser getFtpFileParser()

      Gets the `FtpFileParser` used to parse directory listing returned when invoking `Ftp#getDirListing` method. If `FtpFileParser` is `null` upon establishing connection the `Ftps` class will attempt to determine the proper `FtpFileParser` based on information retrieved from the FTP server. If the `FtpFileParser` is `null` and cannot be determined then by default an instance of `UnixParser` will be used. Upon disconnecting from FTP server the `FtpFileParser` will be reset to `null`.
      Returns:
        a `FtpFileParser` or `null` if no `FtpFileParser` has been defined.
      See Also:
        `FtpFileParser`, `UnixParser`, `NTParser`, `VMSParser`

    - #### setHostname

          public void setHostname(java.lang.String host)

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

    - #### setHostname

          public void setHostname(java.lang.String host,
                                  boolean ensureConnected)

      Sets the hostname of FTP Server.
      Parameters:
        `host` -
        `ensureConnected` -

    - #### getHostname

          public java.lang.String getHostname()

      Gets hostname of FTP server.
      Returns:
        hostname

    - #### getInputStream

          public java.io.InputStream getInputStream(java.lang.String remoteFile,
                                                    long offset)
                                             throws java.io.IOException

      Gets a `InputStream` from FTP server for the purposes of downloading a file.
      Parameters:
        `remoteFile` - remote file name to download
        `offset` - file offset
      Returns:
        an `InputStream`
      Throws:
        `java.io.IOException` - if an I/O or FTP error occurs.

    - #### setLinger

          public void setLinger(int linger)

      Sets the linger time for closing data sockets.
      Parameters:
        `linger` - the linger value in milliseconds

    - #### getLinger

          public int getLinger()

      Gets the linger time for closing data sockets.
      Returns:
        the linger time in milliseconds

    - #### setLocalDir

          public void setLocalDir(java.io.File localDirectory)

      Sets local directory to be used in FTP session. Downloads will be stored relative to local directory. Uploads are performed relative to current local directory.
      Parameters:
        `localDirectory` - the local directory

    - #### getLocalDir

          public java.io.File getLocalDir()

      Gets local directory to be used in FTP session. Downloads will be stored relative to local directory. Uploads are performed relative to current local directory.
      Returns:
        the local directory

    - #### getLocalDirListing

          public java.util.Enumeration getLocalDirListing()

      Gets local directory listing.
      Returns:
        an `Enumeration` of `File`

    - #### getMachineDirListing

          public java.util.Enumeration getMachineDirListing(java.lang.String dirname,
                                                            java.lang.String filter)
                                                     throws FtpException

      Gets file listing of specified directory using MLSD command. This command is not RFC-959 compliant so may not be supported by all FTP servers.
      Parameters:
        `dirname` - directory name or an empty `String` for current directory
        `filter` - a regular expression e.g. "`.``*``\\.txt`" for all files ending in .txt extension
      Returns:
        an `Enumeration` of `FtpFile`
      Throws:
        `FtpException` - if an I/O or FTP error occurs
      See Also:
        `FtpFile`

    - #### getMachineDirListing

          public java.util.Enumeration getMachineDirListing(java.lang.String dirname)
                                                     throws FtpException

      Gets directory listing using MLSD command. This command is not RFC-959 compliant so may not be supported by all FTP servers.
      Parameters:
        `dirname` - the directory name or an empty `String` to use current directory
      Returns:
        an `Enumeration` of `FtpFile`
      Throws:
        `FtpException` - if an I/O or FTP error occurs

    - #### getMachineFileListing

          public FtpFile getMachineFileListing(java.lang.String filename)
                                        throws FtpException

      Gets the file description for the specified filename using MLST command. This command is not RFC-959 compliant so may not be supported by all FTP servers.
      Parameters:
        `filename` - target filename or an empty `String` for current diectory
      Returns:
        an `FtpFile`
      Throws:
        `FtpException` - if an error occurs
      See Also:
        `FtpFile`

    - #### getMode

          public int getMode()

      Gets data transfer mode for current session. Default mode is `Ftps.AUTO` where 0 = `Ftps.AUTO`, 1 = `Ftps.ASCII`, 2 = `Ftp.BINARY`
      Returns:
        the data transfer mode
      See Also:
        `AUTO`, `BINARY`, `ASCII`

    - #### getNameListing

          public java.util.Enumeration getNameListing(java.lang.String filter)
                                               throws FtpException

      Gets directory listing of files on FTP server matching filter criteria and using NLST command. Filter is any expression supported by server. For example *.txt may return all files containing a .txt filename extension.
      Parameters:
        `filter` - the filename filter
      Returns:
        an `Enumeration` of `String` where each item represents a file or directory name
      Throws:
        `FtpException` - if an I/O or FTP related error occurs

    - #### getNameListing

          public java.util.Enumeration getNameListing()
                                               throws FtpException

      Gets directory listing of files on FTP server using NLST command.
      Returns:
        an `Enumeration` of `String` where each item represents a file or directory name
      Throws:
        `FtpException` - if an I/O or FTP related error occurs

    - #### getOutputStream

          public java.io.OutputStream getOutputStream(java.lang.String fileName,
                                                      long off,
                                                      boolean append)
                                               throws java.io.IOException

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

    - #### setNATAddress

          public void setNATAddress(java.lang.String ipAddress)
                             throws FtpException

      Sets a NAT address which will be used for PASV file transfers. For active (non-passive) file transfer see the `setPortAddress` and `setDataPortRange` methods.
      Parameters:
        `ipAddress` - the IP address of NAT server
      Throws:
        `FtpException` - if an I/O or FTP error occurs
      See Also:
        `setDataPortRange(int, int)`, `setPortAddress(String)`

    - #### getNATAddress

          public java.lang.String getNATAddress()
                                         throws FtpException

      Get the NAT address.
      Returns:
        address
      Throws:
        `FtpException`

    - #### getSslHandshakeCompletedListener

          public javax.net.ssl.HandshakeCompletedListener getSslHandshakeCompletedListener()

    - #### setSslHandshakeCompletedListener

          public void setSslHandshakeCompletedListener(javax.net.ssl.HandshakeCompletedListener value)

    - #### setPassive

          public void setPassive(boolean passive)

      Sets whether passive mode should be used. Default is `true`.
      Parameters:
        `passive` - `true` to use passive transfer, `false` otherwise

    - #### getPassive

          public boolean getPassive()

      Gets whether passive mode should be used. Default is `true`.
      Returns:
        `true` if passive mode is enabled, `false` otherwise

    - #### setPassword

          public void setPassword(java.lang.String password)

      Sets password of FTP user.
      Parameters:
        `password` - the password of FTP user

    - #### getPassword

          public java.lang.String getPassword()

      Returns current FTP user password.
      Returns:
        current FTP password.

    - #### setPort

          public void setPort(int port)

      Sets port of FTP server. Default value is 21.
      Parameters:
        `port` - the port of FTP server

    - #### getPort

          public int getPort()

      Gets port of FTP server. Default value is 21.
      Returns:
        port

    - #### setPortAddress

          public void setPortAddress(java.lang.String string)

      Sets the external address to use when using active connections using the PORT command.
      Parameters:
        `string` - an IP address

    - #### getPortAddress

          public java.lang.String getPortAddress()

      Gets the external address to use when using active connections. using the PORT command.
      Returns:
        the external IP address

    - #### setProtectionLevel

          public void setProtectionLevel(char level)
                                  throws FtpException

      Changes the protection level.
      Parameters:
        `level` - a protection level of P (private) or C (Clear)
      Throws:
        `FtpException` - if a FTP or I/O related error occurs

    - #### getResponseCode

          public int getResponseCode()

      Gets response code from last FTP command.
      Returns:
        response code or -1 if code cannot be determined

    - #### setSendBufferSize

          public void setSendBufferSize(int sendBufferSize)

      Sets the send buffer size option of the ftps connection.
      Parameters:
        `sendBufferSize` - Send buffer size.

    - #### setReceiveBufferSize

          public void setReceiveBufferSize(int receiveBufferSize)

      Sets the receive buffer size option of the ftps connection.
      Parameters:
        `receiveBufferSize` - Receive buffer size.

    - #### setServerCertificates

          public void setServerCertificates(java.security.KeyStore keystore)
                                     throws FtpException

      Sets optional server certificate to be used during authentication.
      Parameters:
        `keystore` - the keystore containing server certificate
      Throws:
        `FtpException` - if an error occurs reading keystore

    - #### setServerCertificates

          public void setServerCertificates(java.lang.String filename,
                                            java.lang.String password)
                                     throws FtpException

      Sets optional server certificate to be used during authentication. Default expected keystore format is JKS format. Existing certificate may be imported into keystore using the `keytool` utility provided in the Sun JDK.

      Example:

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

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

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

    - #### setServerCertificates

          public void setServerCertificates(java.lang.String filename,
                                            java.lang.String password,
                                            java.lang.String storetype)
                                     throws FtpException

      Sets optional server certificate to be used during authentication. Default expected keystore format is JKS format. Existing certificate may be imported into keystore using the `keytool` utility provided in the Sun JDK.

      Example:

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

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

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

    - #### setShutdownCCC

          public void setShutdownCCC(boolean shutdownCCC)

      Sets whether SSL connection should be shutdown after successfully issuing CCC command. Default is `true`.
      Parameters:
        `shutdownCCC` - `true` to shutdown, `false` otherwise

    - #### getShutdownCCC

          public boolean getShutdownCCC()

      Gets whether SSL connection should be shutdown after successfully issuing CCC command. Default is `true`.
      Returns:
        `true` to shutdown, `false` otherwise

    - #### getSystemType

          public java.lang.String getSystemType()
                                         throws FtpException

      Gets the system type of remote FTP server.
      Returns:
        system type
      Throws:
        `FtpException` - if an I/O or FTP error occurs.

    - #### setTimeout

          public void setTimeout(int timeout)

      Sets the timeout for opening connection to FTP server.
      Parameters:
        `timeout` - the timeout in milliseconds

    - #### getTimeout

          public int getTimeout()

      Gets the timeout for opening connection to FTP server.
      Returns:
        timeout in milliseconds

    - #### getTcpNoDelay

          public boolean getTcpNoDelay()

    - #### setTcpNoDelay

          public void setTcpNoDelay(boolean value)

    - #### setUsername

          public void setUsername(java.lang.String user)

      Sets username of FTP user.
      Parameters:
        `user` - the username of FTP user

    - #### getUsername

          public java.lang.String getUsername()

      Gets username of FTP user.
      Returns:
        username

    - #### setUseEPSV

          public void setUseEPSV(boolean useEPSV)

      Sets whether to use EPSV or PASV command for data tranfers. Default is to use PASV command.
      Parameters:
        `useEPSV` - `true` to use EPSV command, `false` to use PASV command.

    - #### getUseEPSV

          public boolean getUseEPSV()

      Gets whether to use EPSV or PASV command for data tranfers. Default is `false`, meaning PASV command will be used.
      Returns:
        `true` to use EPSV command, `false` to use PASV command.

    - #### setUseEPRT

          public void setUseEPRT(boolean value)

      Sets whether to use EPRT or PORT command for data tranfers. Default is to use PORT command.
      Parameters:
        `value` - `true` to use EPSV command, `false` to use PASV command.

    - #### getUseEPRT

          public boolean getUseEPRT()

      Gets whether to use EPSV or PORT command for data tranfers. Default is `false`, meaning PORT command will be used.
      Returns:
        `true` to use EPRT command, `false` to use PORT command.

    - #### setWireEncoding

          public void setWireEncoding(java.lang.String encoding)

      Sets character set used when issuing commands and transferring files in ASCII mode.
      Parameters:
        `encoding` - the character encoding to be used

    - #### getWireEncoding

          public java.lang.String getWireEncoding()

      Gets character encoding used when issuing commands and reading files from FTP server in ASCII mode.
      Returns:
        the character encoding to be used

    - #### addFtpsCertificateVerifier

          public void addFtpsCertificateVerifier(FtpsCertificateVerifier listener)

      Deprecated. see `setFtpsCertificateVerifier(FtpsCertificateVerifier)`
      Sets FTPS certificate verifier.
      Parameters:
        `listener` - the listener to add
      See Also:
        `FtpsCertificateVerifier`

    - #### setFtpsCertificateVerifier

          public void setFtpsCertificateVerifier(FtpsCertificateVerifier listener)

      Sets FTPS certificate verifier.
      Parameters:
        `listener` - the listener to add
      See Also:
        `FtpsCertificateVerifier`

    - #### getFtpsCertificateVerifier

          public FtpsCertificateVerifier getFtpsCertificateVerifier()

      Gets FTPS certificate verifier.
      Returns:
        the FtpsCertificateVerifier for this instance
      See Also:
        `FtpsCertificateVerifier`

    - #### addFtpListener

          public void addFtpListener(FtpListener listener)

      Adds FTP event listener.
      Parameters:
        `listener` - the listener to add
      See Also:
        `FtpListener`

    - #### changePassword

          public void changePassword(java.lang.String oldPassword,
                                     java.lang.String newPassword)
                              throws FtpException

      Changes the password for current account. This feature is not supported by RFC-959 so may not work on all FTP servers.
      Parameters:
        `oldPassword` - The old password.
        `newPassword` - The new password.
      Throws:
        `FtpException` - FtpException if underlayed I/O or FTP error occurs.

    - #### checksum

          public boolean checksum(java.io.File localfile,
                                  java.lang.String remoteFile)
                           throws FtpException

      Compares checksum of the local and remote files.
      Parameters:
        `localfile` - local file
        `remoteFile` - remote file
      Returns:
        `true` if checksums are equal; `false` otherwise
      Throws:
        `FtpException` - if an error occurs

    - #### checksum

          public boolean checksum(byte[] data,
                                  java.lang.String remoteFile)
                           throws FtpException

      Compares checksum of the local data and remote file.
      Parameters:
        `data` - data
        `remoteFile` - remote file
      Returns:
        `true` if checksum are equal; `false` otherwise
      Throws:
        `FtpException` - if an error occurs

    - #### clearCommandChannel

          public void clearCommandChannel()
                                   throws FtpException

      Clears command channel.
      Throws:
        `FtpException` - if an I/O error occurs

    - #### connect

          public Ftps connect()
                       throws FtpException

      Connects to FTP server and performs login. Login is made using username, password and optional account.
      Throws:
        `FtpException` - if an I/O or FTP error occurs.
      See Also:
        `setUsername(java.lang.String)`, `setPassword(java.lang.String)`, `setAccount(String)`

    - #### connect

          public Ftps connect(boolean login)
                       throws FtpException

      Connects to FTP server and optionally performs login.
      Parameters:
        `login` - true to login false otherwise
      Throws:
        `FtpException` - if an I/O or FTP error occurs

    - #### getServerFeaturesCommandSuccessful

          public boolean getServerFeaturesCommandSuccessful()

    - #### deleteDir

          public void deleteDir(java.lang.String remoteDirectory,
                                boolean recurse)
                         throws FtpException

      Deletes directory from FTP server. If the directory cannot be deleted because it is not empty the `recurse` parameter will be used to determine if files and subdirectories within directory should be removed.
      Parameters:
        `remoteDirectory` - the directory to remove
        `recurse` - `true` if it should delete files and subdirectories within directory
      Throws:
        `FtpException` - if an I/O or FTP error occurs.

    - #### deleteDir

          public void deleteDir(java.lang.String remoteDirectory)
                         throws FtpException

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

    - #### deleteFile

          public void deleteFile(java.lang.String remoteFile)
                          throws FtpException

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

    - #### disconnect

          public void disconnect()

      Quits the FTP session and disconnects from the FTP server.

    - #### close

          public void close()

      Specified by:
        `close` in interface `java.lang.AutoCloseable`

    - #### download

          public void download(java.io.OutputStream out,
                               java.lang.String remoteFile)
                        throws FtpException

      Downloads file from FTP server and writes contents to provided `OutputStream`. Closure of `OutputStream` is responsibility of programmer.
      Parameters:
        `out` - the `OutputStream` to write download to
        `remoteFile` - remote filename
      Throws:
        `FtpException` - if an I/O or FTP error occurs.

    - #### download

          public java.io.File download(java.lang.String localFile,
                                       java.lang.String remoteFile)
                                throws FtpException

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

    - #### download

          public java.io.File download(java.lang.String remoteFile)
                                throws FtpException

      Downloads file from FTP server. Downloads are stored relative to current local directory.
      Parameters:
        `remoteFile` - the file to download
      Returns:
        File the file downloaded
      Throws:
        `FtpException` - if an I/O or FTP error occurs.
      See Also:
        `setLocalDir(java.io.File)`

    - #### downloadDir

          public void downloadDir(java.lang.String remoteDir)
                           throws FtpException

      Downloads remote directory and contents recursively from FTP server. Downloads are stored relative to current local directory.
      Parameters:
        `remoteDir` - the directory to download
      Throws:
        `FtpException` - if an I/O or FTP error occurs.
      See Also:
        `setLocalDir(java.io.File)`

    - #### downloadDir

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

      Downloads remote directory and contents recursively from FTP server. Downloads are stored relative to current local directory.
      Parameters:
        `remoteDir` - the remote directory to download
        `retryLimit` - the retry limit if download fails
        `performChecksum` - whether to perform checksum on files downloaded, not supported by all FTP servers
      Throws:
        `FtpException` - if an I/O or FTP error occurs.

    - #### downloadDir

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

      Downloads remote directory and contents recursively from FTP server. Downloads are stored relative to current local directory.
      Parameters:
        `remoteDir` - the remote directory to download
        `retryLimit` - the retry limit if download fails
        `retryInterval` - the retry interval in seconds
        `performChecksum` - whether to perform checksum on files downloaded, not supported by all FTP servers
      Throws:
        `FtpException` - if an I/O or FTP error occurs.

    - #### downloadDir

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

      Download directory.
      Parameters:
        `remoteDir` -
        `retryLimit` -
        `performChecksum` -
        `threadCount` -
      Throws:
        `FtpException`

    - #### downloadDir

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

      Downloads remote directory and contents from FTP server. Downloads are stored relative to current local directory.
      Parameters:
        `remoteDir` - the directory to download
        `retryLimit` - retry limit if an error occurs
        `performChecksum` - whether to perform checksum after each download, not supported by all FTP servers
      Throws:
        `FtpException` - if an I/O or FTP error occurs.
      See Also:
        `setLocalDir(java.io.File)`

    - #### abortDownloadThreads

          public void abortDownloadThreads()

      Abort all download threads.

    - #### abortDownloadThread

          public void abortDownloadThread(java.lang.String file)

      Cancel the given file transfer thread.
      Parameters:
        `file` -

    - #### interrupt

          public void interrupt()

      Interrupts the current data transfer and sets interrupted flag to `true`. After invoking this method you must reset the interrupted flag to `false` before transferring any files.
      See Also:
        `reset()`

    - #### interrupted

          public boolean interrupted()

      Checks if transfer process was interrupted.
      Returns:
        `true` if transfer process was interrupted.

    - #### issueCommand

          public java.lang.String issueCommand(java.lang.String cmd)
                                        throws FtpException

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

    - #### issueCommandCheck

          public java.lang.String issueCommandCheck(java.lang.String cmd)
                                             throws FtpException

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

    - #### login

          public void login()
                     throws FtpException

      Logs into FTP server after establishing a connection. This method should only be used if login is not performed automatically during `Ftps#connect`.
      Throws:
        `FtpException` - if an I/O or FTP error occurs
      See Also:
        `connect()`

    - #### makeDir

          public void makeDir(java.lang.String newDirectory)
                       throws FtpException

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

    - #### makeDirRecursive

          public void makeDirRecursive(java.lang.String newDirectory)
                                throws FtpException

      Makes directory on FTP server, creating subdirectories if necessary.
      Parameters:
        `newDirectory` - full path of directory to make
      Throws:
        `FtpException` - if an I/O or FTP error occurs

    - #### makeLocalDir

          public java.io.File makeLocalDir(java.lang.String directoryName)

      Creates local directory. Directory is relative to current local directory.
      Parameters:
        `directoryName` - name of directory
      Returns:
        the directory
      See Also:
        `getLocalDir()`

    - #### mdelete

          public void mdelete(java.lang.String filter)
                       throws FtpException

      Deletes multiple files matching regular in FTP server's current directory. For example, to delete all files with .txt extension use the regular expression "`.``*``\\.txt`".
      Parameters:
        `filter` - the regular expression filter to use
      Throws:
        `FtpException` - if an I/O or FTP error occurs.

    - #### mdownload

          public void mdownload(java.util.Enumeration fileNames)
                         throws FtpException

      Downloads specified files in current working remote directory from FTP server to local directory. Do not use this method to download a directory, see `downloadDir(String)` method instead. Downloads are stored relative to current local directory.
      Parameters:
        `fileNames` - filenames of files to download
      Throws:
        `FtpException` - if an I/O or FTP error occurs.
      See Also:
        `setLocalDir(java.io.File)`, `downloadDir(String)`

    - #### mdownload

          public void mdownload(java.lang.String filter)
                         throws FtpException

      Downloads multiple files matching regular expression from FTP server's current directory. Downloads are stored relative to current local directory. For example to download all files ending with extension .txt use the regular expression "`.``*``\\.txt`".
      Parameters:
        `filter` - the regular expression filter to use
      Throws:
        `FtpException` - if an I/O or FTP error occurs.
      See Also:
        `setLocalDir(java.io.File)`, `downloadDir(java.lang.String)`

    - #### mupload

          public void mupload(java.util.Enumeration fileNames)
                       throws FtpException

      Uploads multiple files to FTP server Uploads are performed relative to current local directory.
      Parameters:
        `fileNames` - filenames of files to upload
      Throws:
        `FtpException` - if an I/O or FTP error occurs.
      See Also:
        `setLocalDir(java.io.File)`

    - #### mupload

          public void mupload(java.lang.String filter)
                       throws FtpException

      Uploads multiple files matching regular expression to FTP server's current directory. Uploads are performed relative to current local directory. For example, to upload all files with extension .txt use the regular expression "`.``*``\\.txt`".
      Parameters:
        `filter` - the regular expression filter to use
      Throws:
        `FtpException` - if an I/O or FTP error occurs.
      See Also:
        `setLocalDir(java.io.File)`

    - #### noop

          public java.lang.String noop()
                                throws FtpException

      Sends a NOOP (No Operation) command to FTP server. This is useful in helping to prevent a lost connection due to inactivity.
      Returns:
        the response to the NOOP command
      Throws:
        `FtpException` - if an I/O or FTP error occurs

    - #### readResponse

          public java.lang.String readResponse()
                                        throws FtpException

      Reads response from FTP server. Normally this method should not be invoked as this is done automatically. This should be used only in cases where manual reading of response is necessary.
      Returns:
        the response
      Throws:
        `FtpException` - if an I/O or FTP related error occurs.

    - #### removeFtpListener

          public void removeFtpListener(FtpListener listener)

      Removes specified FTP event listener.
      Parameters:
        `listener` - the listener to remove
      See Also:
        `FtpListener`

    - #### renameFile

          public void renameFile(java.lang.String remoteFile,
                                 java.lang.String newFile)
                          throws FtpException

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

    - #### reset

          public void reset()

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

    - #### resumeDownload

          public java.io.File resumeDownload(java.lang.String remoteFile,
                                             long off)
                                      throws FtpException

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

    - #### resumeDownload

          public java.io.File resumeDownload(java.lang.String localFile,
                                             java.lang.String remoteFile,
                                             long off)
                                      throws FtpException

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

    - #### resumeUpload

          public void resumeUpload(java.io.File localFile,
                                   long off)
                            throws FtpException

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

    - #### resumeUpload

          public void resumeUpload(java.io.File localFile,
                                   java.lang.String remoteFile,
                                   long off)
                            throws FtpException

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

    - #### resumeUpload

          public void resumeUpload(java.lang.String localFile,
                                   long off)
                            throws FtpException

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

    - #### resumeUpload

          public void resumeUpload(java.lang.String localFile,
                                   java.lang.String remoteFile,
                                   long off)
                            throws FtpException

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

    - #### upload

          public void upload(java.io.File localFile,
                             java.lang.String remoteFile,
                             boolean append)
                      throws FtpException

      Uploads file to FTP server. If `localFile` is a directory then directory and entire contents are uploaded.
      Parameters:
        `localFile` - the local file to upload
        `remoteFile` - the destination of upload
        `append` - `true` to append to remote file on FTP server, `false` otherwise
      Throws:
        `FtpException` - if an I/O or FTP related error occurs

    - #### upload

          public void upload(java.io.File localFile,
                             boolean append)
                      throws FtpException

      Uploads file to FTP server. If `localFile` is a directory then directory and entire contents are uploaded.
      Parameters:
        `localFile` - the local file to upload
        `append` - `true` to append to remote file on FTP server, `false` otherwise
      Throws:
        `FtpException` - if an I/O or FTP related error occurs

    - #### upload

          public void upload(java.io.File localFile,
                             java.lang.String remoteFile)
                      throws FtpException

      Uploads file to FTP server. If `localFile` is a directory then directory and entire contents are uploaded.
      Parameters:
        `localFile` - the local file to upload
        `remoteFile` - the destination of upload
      Throws:
        `FtpException` - if an I/O or FTP related error occurs

    - #### upload

          public void upload(java.io.File localFile)
                      throws FtpException

      Uploads file to FTP server. If `localFile` is a directory then directory and entire contents are uploaded.
      Parameters:
        `localFile` - the local file to upload
      Throws:
        `FtpException` - if an I/O or FTP related error occurs

    - #### upload

          public void upload(java.lang.String extension,
                             java.io.File localFile)
                      throws FtpException

      Uploads file to FTP server using temporary extension, then renames file back to original name once uploaded.
      Parameters:
        `extension` - the temporary extension to use when uploading files prior to renaming them or `null` to use default extension
        `localFile` - the local file to upload
      Throws:
        `FtpException` - if an I/O or FTP related error occurs

    - #### upload

          public void upload(java.lang.String localFile,
                             java.lang.String remoteFile,
                             boolean append)
                      throws FtpException

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

    - #### upload

          public void upload(java.lang.String localFile,
                             java.lang.String remoteFile)
                      throws FtpException

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

    - #### upload

          public void upload(java.lang.String localFile,
                             boolean append)
                      throws FtpException

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

    - #### upload

          public void upload(java.lang.String localFile)
                      throws FtpException

      Uploads file to FTP server. Uploads are performed relative to current local directory.
      Parameters:
        `localFile` - the local file to upload
      Throws:
        `FtpException` - if an I/O or FTP error occurs.
      See Also:
        `setLocalDir(java.io.File)`

    - #### upload

          public void upload(byte[] data,
                             java.lang.String remoteFile,
                             boolean append)
                      throws FtpException

      Uploads file to FTP server where contents of file is not on disk but in memory.
      Parameters:
        `data` - the raw contents of the file to upload
        `remoteFile` - the filename to store file as on FTP server
        `append` - `true` to append to remote file on FTP server, `false` otherwise
      Throws:
        `FtpException` - if an I/O or FTP related error occurs

    - #### upload

          public void upload(byte[] data,
                             java.lang.String remoteFile)
                      throws FtpException

      Uploads file to FTP server where contents of file is not on disk but in memory.
      Parameters:
        `data` - the raw contents of the file to upload
        `remoteFile` - the filename to store file as on FTP server
      Throws:
        `FtpException` - if an I/O or FTP related error occurs

    - #### upload

          public void upload(java.io.InputStream input,
                             java.lang.String remoteFile,
                             boolean append)
                      throws FtpException

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

    - #### upload

          public void upload(java.io.InputStream input,
                             java.lang.String remoteFile)
                      throws FtpException

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

    - #### uploadDir

          public void uploadDir(java.io.File localDir)
                         throws FtpException

      Uploads local directory and contents recursively to FTP server. Uploads are stored relative to current remote directory.
      Parameters:
        `localDir` - the directory to upload
      Throws:
        `FtpException` - if an I/O or FTP error occurs.

    - #### uploadDir

          public void uploadDir(java.io.File localDir,
                                java.lang.String extension)
                         throws FtpException

      Uploads local directory and contents recursively to FTP server. Uploads are stored relative to current remote directory.
      Parameters:
        `localDir` - the directory to upload
        `extension` - the temporary extension to use when uploading files prior to renaming them or `null` to use default extension
      Throws:
        `FtpException` - if an I/O or FTP error occurs.

    - #### uploadDir

          public void uploadDir(java.io.File localDir,
                                int retryLimit,
                                boolean performChecksum)
                         throws FtpException

      Uploads local directory and contents to FTP server. Uploads are stored relative to current remote directory.
      Parameters:
        `localDir` - the directory to upload
        `retryLimit` - retry limit if upload fails
        `performChecksum` - whether to perform checksum after upload, not supported by all FTP servers
      Throws:
        `FtpException` - if an I/O or FTP error occurs.

    - #### uploadDir

          public void uploadDir(java.io.File localDir,
                                int retryLimit,
                                boolean performChecksum,
                                java.lang.String extension)
                         throws FtpException

      Uploads local directory and contents to FTP server. Uploads are stored relative to current remote directory.
      Parameters:
        `localDir` - the directory to upload
        `retryLimit` - retry limit if upload fails
        `performChecksum` - whether to perform checksum, not supported by all FTP servers
        `extension` - the temporary extension to use prior to renaming files after upload
      Throws:
        `FtpException` - if an I/O or FTP error occurs.

    - #### uploadDir

          public void uploadDir(java.io.File localDir,
                                int retryLimit,
                                boolean performChecksum,
                                java.lang.String extension,
                                int threadCount)
                         throws FtpException

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

    - #### uploadDir

          public void uploadDir(java.io.File localDir,
                                int retryLimit,
                                int retryInterval,
                                boolean performChecksum,
                                java.lang.String extension,
                                int threadCount)
                         throws FtpException

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

    - #### abortUploadThread

          public void abortUploadThread(java.lang.String file)

      Cancel the given file transfer thread.
      Parameters:
        `file` -

    - #### abortUploadThreads

          public void abortUploadThreads()

      Cancel all upload threads.

    - #### getRecursiveDirectoryFileCount

          public int getRecursiveDirectoryFileCount(java.lang.String directory)

      Get size of all files rescursively in a given remote directory.
      Parameters:
        `directory` - - the remote directory name
      Returns:
        size of files.

    - #### getRecursiveDirectorySize

          public long getRecursiveDirectorySize(java.lang.String directory)

      Get size of all files rescursively in a given remote directory.
      Parameters:
        `directory` - - the remote directory name
      Returns:
        size of files.

    - #### uploadDir

          public void uploadDir(java.io.File localDir,
                                int retryLimit,
                                int retryInterval,
                                boolean performChecksum,
                                java.lang.String extension)
                         throws FtpException

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

    - #### uploadUnique

          public java.lang.String uploadUnique(java.lang.String fileName)
                                        throws FtpException

      Uploads the file which is created in the current directory under a name unique to that directory.
      Parameters:
        `fileName` - the filename to upload
      Returns:
        the resulting unique filename on FTP server
      Throws:
        `FtpException` - if an I/O or FTP error occurs

    - #### uploadUnique

          public java.lang.String uploadUnique(java.lang.String fileName,
                                               boolean useFilenameAsSeed)
                                        throws FtpException

      Uploads the file which is created in the current directory under a name unique to that directory.
      Parameters:
        `fileName` - the filename to upload
        `useFilenameAsSeed` - whether filename should be used as seed value for generating unique filename on server
      Returns:
        the resulting unique filename on FTP server
      Throws:
        `FtpException` - if an I/O or FTP error occurs

    - #### uploadUnique

          public java.lang.String uploadUnique(java.io.File file)
                                        throws FtpException

      Uploads the file which is created in the current directory under a name unique to that directory.
      Parameters:
        `file` - the file to upload
      Returns:
        the resulting unique filename on FTP server
      Throws:
        `FtpException` - if an I/O or FTP error occurs

    - #### uploadUnique

          public java.lang.String uploadUnique(java.io.File file,
                                               boolean useFilenameAsSeed)
                                        throws FtpException

      Uploads the file which is created in the current directory under a name unique to that directory.
      Parameters:
        `file` - the file to upload
        `useFilenameAsSeed` - whether filename should be used as seed value for generating unique filename on server
      Returns:
        the resulting unique filename on FTP server
      Throws:
        `FtpException` - if an I/O or FTP error occurs

    - #### uploadUnique

          public java.lang.String uploadUnique(java.io.InputStream in,
                                               java.lang.String fileName)
                                        throws FtpException

      Uploads the file which is created in the current directory under a name unique to that directory.
      Parameters:
        `in` - data input stream.
        `fileName` - the filename seed to use for determining remote filename or `null` not to pass filename as part of STOU command
      Returns:
        the resulting unique filename on FTP server
      Throws:
        `FtpException` - if an I/O or FTP error occurs

    - #### getLocalChecksum

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

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

    - #### getRemoteFileChecksum

          public java.lang.String getRemoteFileChecksum(java.lang.String remoteFile)
                                                 throws FtpException

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

    - #### getRemoteFileList

          public java.util.Vector getRemoteFileList(java.lang.String remoteDir)
                                             throws FtpException

      Gets all the remote files from the current directory and subdirectories.
      Parameters:
        `remoteDir` - The current remote will be consulted
      Returns:
        A collection of file paths.
      Throws:
        `FtpException` - If an error occurs

    - #### getAccount

          public java.lang.String getAccount()

      Gets optional account of FTP server. This should not be confused with username.
      Returns:
        account the account
      See Also:
        `setUsername(String)`

    - #### setAccount

          public void setAccount(java.lang.String account)

      Sets optional account of FTP server. This should not be confused with username.
      Parameters:
        `account` - the optional FTP account
      See Also:
        `getUsername()`

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