ChilkatFtp2 ActiveX Reference

ChilkatFtp2

Commercial File Transfer Protocol (FTP) Component.

Object Creation

(Visual Basic 6.0)
Dim obj As New ChilkatFtp2
(ASP)
set obj = Server.CreateObject("Chilkat.Ftp2")
(VBScript)
set obj = CreateObject("Chilkat.Ftp2")
(Delphi)
obj := TChilkatFtp2.Create(Self);
(FoxPro)
loObject = CreateObject('Chilkat.Ftp2')
(SQL Server)
EXEC @hr = sp_OACreate 'Chilkat.Ftp2', @obj OUT
(Javascript)
var obj = new ActiveXObject("Chilkat.Ftp2");

Properties

Account As String

Some FTP servers require an Account name in addition to login/password. This property can be set for those servers with this requirement.

ActivePortRangeEnd As Long

When Active (i.e. PORT) mode is used (opposite of Passive), the client-side is responsible for choosing a random port for each data connection. (Note: In the FTP protocol, each data transfer occurs on a separate TCP/IP connection. Commands are sent over the control channel (port 21 for non-SSL, port 990 for SSL).)

This property, along with ActivePortRangeStart, allows the client to specify a range of ports for data connections.

more information about FTP port ranges

ActivePortRangeStart As Long

This property, along with ActivePortRangeEnd, allows the client to specify a range of ports for data connections when in Active mode.

more information about FTP port ranges

AllocateSize As Long

If set to a non-zero value, causes an ALLO command, with this size as the parameter, to be automatically sent when uploading files to an FTP server.

This command could be required by some servers to reserve sufficient storage space to accommodate the new file to be transferred.

AsyncBytesReceived As Long (read-only)

The number of bytes received during an asynchronous FTP download. This property is updated in real-time and an application may periodically fetch and display it's value while the download is in progress.

AsyncBytesSent As Long (read-only)

The number of bytes sent during an asynchronous FTP upload. This property is updated in real-time and an application may periodically fetch and display it's value while the upload is in progress.

AsyncFinished As Long (read-only)

Set to 1 if the asynchronous transfer (download or upload) is finished.

AsyncLog As String (read-only)

The last-error information for an asynchronous (background) file transfer.

AsyncSuccess As Long (read-only)

Set to 1 if the asynchronous file transfer succeeded.

AuthSsl As Long

Same as AuthTls, except the command sent to the FTP server is "AUTH SSL" instead of "AUTH TLS". Most FTP servers accept either. AuthTls is more commonly used. If a particular server has trouble with AuthTls, try AuthSsl instead.

AuthTls As Long

Set this to 1 to switch to a TLS 1.0 encrypted channel. This property should be set prior to connecting. If this property is set, the port typically remains at it's default (21) and the Ssl property should *not* be set. When AuthTls is used, all control and data transmissions are encrypted. If your FTP client is behind a network-address-translating router, you may need to call ClearControlChannel after connecting and authenticating (i.e. after calling the Connect method). This keeps all data transmissions encrypted, but clears the control channel so that commands are sent unencrypted, thus allowing the router to translate network IP numbers in FTP commands.

AutoFeat As Long

When 1 (which is the default value), a "FEAT" command is automatically sent to the FTP server immediately after connecting. This allows the Chilkat FTP2 component to know more about the server's capabilities and automatically adjust any applicable internal settings based on the response. In rare cases, some FTP servers reject the "FEAT" command and close the connection. Usually, if an FTP server does not implement FEAT, a harmless "command not understood" response is returned.

Set this property to 0 to prevent the FEAT command from being sent.

AutoSyst As Long

When 1 (which is the default value), a "SYST" command is automatically sent to the FTP server immediately after connecting. This allows the Chilkat FTP2 component to know more about the server and automatically adjust any applicable internal settings based on the response. If the SYST command causes trouble (which is rare), this behavior can be turned off by setting this property equal to 0.

AutoXcrc As Long

Many FTP servers support the XCRC command. The Chilkat FTP component will automatically know if XCRC is supported because it automatically sends a FEAT command to the server immediately after connecting.

If this property is set to 1, then all uploads will be automatically verified by sending an XCRC command immediately after the transfer completes. If the CRC is not verified, the upload method (such as PutFile) will return a failed status.

To prevent XCRC checking, set this property to 0.

BandwidthThrottleDown As Long

If set to a non-zero value, the FTP2 component will bandwidth throttle all downloads to this value.

The default value of this property is 0. The value should be specified in bytes/second.

Note: It is difficult to throttle very small downloads. (For example, how do you bandwidth throttle a 1-byte download???) As the downloaded file size gets larger, the transfer rate will better approximate this property's setting.

(ASP) FTP Bandwidth Throttle for Downloads

(VB6) FTP Bandwidth Throttle for Downloads

(Delphi) FTP Bandwidth Throttle for Downloads

(FoxPro) FTP Bandwidth Throttle for Downloads

(VBScript) FTP Bandwidth Throttle for Downloads

BandwidthThrottleUp As Long

If set to a non-zero value, the FTP2 component will bandwidth throttle all uploads to this value.

The default value of this property is 0. The value should be specified in bytes/second.

Note: It is difficult to throttle very small uploads. (For example, how do you bandwidth throttle a 1-byte upload???) As the uploaded file size gets larger, the transfer rate will better approximate this property's setting.

(ASP) FTP Bandwidth Throttle for Upload

(VB6) FTP Bandwidth Throttle for Upload

(Delphi) FTP Bandwidth Throttle for Upload

(FoxPro) FTP Bandwidth Throttle for Upload

(VBScript) FTP Bandwidth Throttle for Upload

ConnectFailReason As Long (read-only)

If the Connect method fails, this property can be checked to determine the reason for failure.

Possible values are:

0 = success
Normal (non-SSL) sockets:
1 = empty hostname
2 = DNS lookup failed
3 = DNS timeout
4 = Aborted by application.
5 = Internal failure.
6 = Connect Timed Out
7 = Connect Rejected (or failed for some other reason)
SSL:
100 = Internal schannel error
101 = Failed to create credentials
102 = Failed to send initial message to proxy.
103 = Handshake failed.
104 = Failed to obtain remote certificate.
Protocol/Component:
300 = asynch op in progress
301 = login failure.

ConnectTimeout As Long

Maximum number of seconds to wait when connecting to an FTP server.

ConnectVerified As Long (read-only)

True if the FTP2 component was able to establish a TCP/IP connection to the FTP server after calling Connect.

CrlfMode As Long

Used to control CRLF line endings when downloading text files in ASCII mode. The default value is 0.

Possible values are:

0 = Do nothing.  The line-endings are not modified as received from the FTP server.
1 = Convert all line-endings to CR+LF
2 = Convert all line-endings to bare LF's
3 = Convert all line-endings to bare CR's

DirListingCharset As String

Set to "ansi" by default. If the FTP server sends directory listings with non-English filenames, this property can be set to the appropriate value if necessary.

DownloadRate As Long (read-only)

The average download rate in bytes/second. This property is updated in real-time during any FTP download (asynchronous or synchronous).

HasModeZ As Long (read-only)

Chilkat FTP2 supports MODE Z, which is a transfer mode implemented by some FTP servers. It allows for files to be uploaded and downloaded using compressed streams (using the zlib deflate algorithm). This is a read-only property. It will be set to 1 if the FTP2 component detects that your FTP server supports MODE Z. Otherwise it is set to 0.

HeartbeatMs As Long

This is the number of milliseconds between each AbortCheck event callback. The AbortCheck callback allows an application to abort any FTP operation prior to completion. If HeartbeatMs is 0, no AbortCheck event callbacks will occur. Also, AbortCheck callbacks do not occur when doing asynchronous transfers.

Hostname As String

The FTP server hostname.

IdleTimeoutMs As Long

This timeout causes FTP operations to fail when no activity is seen on the control or data socket for this number of milliseconds. Setting IdleTimeoutMs = 0 (the default) allows the application to wait indefinitely.

IsConnected As Long (read-only)

Returns 1 if currently connected and logged into an FTP server, otherwise returns 0.

Note: Accessing this property may cause a NOOP command to be sent to the FTP server.

KeepSessionLog As Long

Turns the in-memory session logging on or off. If on, the session log can be obtained via the SessionLog property.

LastErrorHtml As String (read-only)

The last-error information returned in an HTML formatted string.Error information in HTML format for the last method called.

LastErrorText As String (read-only)

The last-error information returned in a plain-text string with CRLF line-endings.Error information in plain-text format for the last method called.

LastErrorXml As String (read-only)

The last-error information returned in an XML formatted string.Error information in XML format for the last method called.

ListPattern As String

A wildcard pattern, defaulting to "*" that determines the files and directories included in the following properties and methods: NumFilesAndDirs, GetCreateTime, GetFilename, GetIsDirectory, GetLastAccessTime, GetModifiedTime, GetSize.

LoginVerified As Long (read-only)

True if the FTP2 component was able to login to the FTP server after calling Connect.

NumFilesAndDirs As Long (read-only)

The number of files and sub-directories in the current remote directory that match the ListPattern. (The ListPattern defaults to "*", so unless changed, this is the total number of files and sub-directories.)

Special considerations.

PartialTransfer As Long (read-only)

To be documented soon.

Passive As Long

Set to true for FTP to operate in passive mode, otherwise set to false for non-passive (the default).

PassiveUseHostAddr As Long

This can handle problems that may arise when an FTP server is located behind a NAT router. FTP servers respond to the PASV command by sending the IP address and port where it will be listening for the data connection. If the control connection is SSL encrypted, the NAT router is not able to convert from an internal IP address (typically beginning with 192.168) to an external address. When set to 1, PassiveUseHostAddr property tells the FTP client to discard the IP address part of the PASV response and replace it with the IP address of the already-established control connection. The default value of this property is 0.

Password As String

Password for logging into the FTP server.

Port As Long

Port number. Automatically defaults to the default port for the FTP service.

ProgressMonSize As Long

Progress monitoring for FTP downloads rely on the FTP server indicating the file size within the RETR response. Some FTP servers however, do not indicate the file size and therefore it is not possible to monitor progress based on percentage completion. This property allows the application to explicitly tell the FTP component the size of the file about to be downloaded for the next GetFile call.

(VB6) ProgressMonSize (more info and example)

(Delphi) ProgressMonSize (more info and example)

(FoxPro) ProgressMonSize (more info and example)

(VBScript) ProgressMonSize (more info and example)

ProxyHostname As String

The hostname of your FTP proxy, if a proxy server is used.

ProxyMethod As Long

The proxy scheme used by your FTP proxy server. Valid values are 0 to 6. The default value is 0 which indicates that no proxy server is used. Supported proxy methods are as follows:

Note: The ProxyHostname is the hostname of the firewall, if the proxy is a firewall. Also, the ProxyUsername and ProxyPassword are the firewall username/password (if the proxy is a firewall).

ProxyMethod = 1 (SITE site)

USER ProxyUsername
PASS ProxyPassword
SITE Hostname
USER Username
PASS Password

ProxyMethod = 2 (USER user@site)

USER Username@Hostname:Port
PASS Password

ProxyMethod = 3 (USER with login)

USER ProxyUsername
PASS ProxyPassword
USER Username@Hostname:Port
PASS Password

ProxyMethod = 4 (USER/PASS/ACCT)

USER Username@Hostname:Port ProxyUsername
PASS Password
ACCT ProxyPassword

ProxyMethod = 5 (OPEN site)

USER ProxyUsername
PASS ProxyPassword
OPEN Hostname
USER Username
PASS Password

ProxyMethod = 6 (firewallId@site)

USER ProxyUsername@Hostname
USER Username
PASS Password

ProxyPassword As String

The password for authenticating with the FTP proxy server.

ProxyPort As Long

If an FTP proxy server is used, this is the port number at which the proxy server is listening for connections.

ProxyUsername As String

The username for authenticating with the FTP proxy server.

ReadTimeout As Long

Maximum number of seconds to wait when reading from an FTP server. The ReadTimeout is the amount of time that needs to elapse while no additional data is forthcoming. So during a long download, if the data stream halts for more than this amount, it will timeout. Otherwise, there is no limit on the length of time for the entire download.

RequireSslCertVerify As Long

If 1, then the FTP2 client will verify the server's SSL certificate. The certificate is expired, or if the cert's signature is invalid, the connection is not allowed. The default value of this property is 0.

RestartNext As Long

Both uploads and downloads may be resumed by simply setting this property = 1 and re-calling the upload or download method.

(ASP) Example: Restart/Resume FTP Download

(VB6) Example: Restart/Resume FTP Download

(Delphi) Example: Restart/Resume FTP Download

(FoxPro) Example: Restart/Resume FTP Download

(VBScript) Example: Restart/Resume FTP Download

(ASP) Example: Restart/Resume FTP Upload

(VB6) Example: Restart/Resume FTP Upload

(Delphi) Example: Restart/Resume FTP Upload

(FoxPro) Example: Restart/Resume FTP Upload

(VBScript) Example: Restart/Resume FTP Upload

SessionLog As String (read-only)

Contains the session log if KeepSessionLog is turned on.

SkipFinalReply As Long

Special property used to help specific customers with a certain type of embedded FTP server. Do not use unless advised by Chilkat.

Ssl As Long

Use SSL for FTP connections. You would typically set Ssl = 1 when connecting to port 990 on FTP servers that support SSL mode. Note: It is more common to use AuthTls.

SslServerCertVerified As Long (read-only)

Read-only property that returns 1 if the FTP server's digital certificate was verified when connecting via SSL / TLS.

UploadRate As Long (read-only)

The average upload rate in bytes/second. This property is updated in real-time during any FTP upload (asynchronous or synchronous).

Username As String

Username for logging into the FTP server. Defaults to "anonymous".

Version As String (read-only)

Version of the component, such as "1.0.0"

Methods

AppendFile(localFilename As String, remoteFilename As String) As Long

Same as PutFile but the file on the FTP server is appended.

Returns 1 for success, 0 for failure.

AppendFileFromBinaryData(remoteFilename As String, binaryData As Variant) As Long

Same as PutFileFromBinaryData, except the file on the FTP server is appended.

Returns 1 for success, 0 for failure.

AppendFileFromTextData(remoteFilename As String, textData As String, charset As String) As Long

Same as PutFileFromTextData, except the file on the FTP server is appended.

Returns 1 for success, 0 for failure.

AsyncAbort()

Causes an asynchronous Get or Put to abort.

AsyncAppendFileStart(localFilename As String, remoteFilename As String) As Long

Initiates an asynchronous append. The file is uploaded and appended to an existing file on the FTP server. The append happens in a background thread and can be aborted by calling AsyncAbort. The AsyncFinished property can be checked periodically to determine when the background transfer is finished. The status of the transfer is available in the AsyncSuccess property. The last-error information is available in the AsyncLog property. The AsyncBytesSent property is updated in real time to reflect the current number of bytes sent while the transfer is in progress. The UploadRate is also updated with the current upload rate in bytes/second. While a transfer is in progress, a program may periodically read the UploadRate and AsyncBytesSent properties to display progress.

Returns 1 for success, 0 for failure.

AsyncGetFileStart(remoteFilename As String, localFilename As String) As Long

Initiates an asynchronous file download. The download happens in a background thread and can be aborted by calling AsyncAbort. The AsyncFinished property can be checked periodically to determine when the background transfer is finished. The status of the transfer is available in the AsyncSuccess property. The last-error information is available in the AsyncLog property. The AsyncBytesReceived property is updated in real time to reflect the current number of bytes received while the transfer is in progress. The DownloadRate is also updated with the current download rate in bytes/second. While a transfer is in progress, a program may periodically read the DownloadRate and AsyncBytesReceived properties to display progress.

Returns 1 for success, 0 for failure.

AsyncPutFileStart(localFilename As String, remoteFilename As String) As Long

Initiates an asynchronous file upload. The file is uploaded and creates a new file on the FTP server, or overwrites an existing file. The upload happens in a background thread and can be aborted by calling AsyncAbort. The AsyncFinished property can be checked periodically to determine when the background transfer is finished. The status of the transfer is available in the AsyncSuccess property. The last-error information is available in the AsyncLog property. The AsyncBytesSent property is updated in real time to reflect the current number of bytes sent while the transfer is in progress. The UploadRate is also updated with the current upload rate in bytes/second. While a transfer is in progress, a program may periodically read the UploadRate and AsyncBytesSent properties to display progress.

Returns 1 for success, 0 for failure.

ChangeRemoteDir(relativeDirPath As String) As Long

Changes the current remote directory.

Returns 1 for success, 0 for failure.

ClearControlChannel() As Long

Reverts the FTP control channel from SSL/TLS to an unencrypted channel. This may be required when using FTPS with AUTH TLS where the FTP client is behind a DSL or cable-modem router that performs NAT (network address translation). If the control channel is encrypted, the router is unable to translate the IP address sent in the PORT command for data transfers. By clearing the control channel, the data transfers will remain encrypted, but the FTP commands are passed unencrypted. Your program would typically clear the control channel after authenticating.

Returns 1 for success, 0 for failure.

ClearDirCache()

TheNumFilesAndDirs property returns the count of files and sub-directories in the current remote FTP directory, according to the ListPattern property. For example, if ListPattern is set to “*.xml”, then NumFilesAndDirs returns the count of XML files in the remote directory.

The 1st time it is accessed, the component will (behind the scenes) fetch the directory listing from the FTP server. This information is cached in the component until (1) the current remote directory is changed, or (2) the ListPattern is changed, or (3) the this method (ClearDirCache) is called.

ClearSessionLog()

Clears the in-memory session log.

Connect() As Long

Connects and logs in to the FTP server using the username/password provided in the component properties. Check the integer value of the ConnectFailReason if this method returns 0 (indicating failure).

Returns 1 for success, 0 for failure.

ConvertToTls() As Long

To be documented soon...

CreatePlan(localDir As String) As String

Creates an "FTP plan" that lists the FTP operations that would be performed when PutTree is called. Additionally, the PutPlan method executes an "FTP plan" and logs each successful operation to a plan log file. If a large-scale upload is interrupted, the PutPlan can be resumed, skipping over the operations already listed in the plan log file.

Returns a null on failure

CreateRemoteDir(dir As String) As Long

Creates a directory on the FTP server. If the directory already exists, a new one is not created and 0 is returned.

Returns 1 for success, 0 for failure.

DeleteMatching(remotePattern As String) As Long

Deletes all the files in the current remote FTP directory matching the pattern. Returns the number of files deleted, or -1 for failure. The pattern is a string such as "*.txt", where any number of "*" wildcard characters can be used. "*" matches 0 or more of any character.

DeleteRemoteFile(filename As String) As Long

Deletes a file on the FTP server.

Returns 1 for success, 0 for failure.

DeleteTree() As Long

Deletes the entire subtree and all files from the current remote FTP directory. To delete a subtree on the FTP server, your program would first navigate to the root of the subtree to be deleted by calling ChangeRemoteDir, and then call DeleteTree. There are two event callbacks: VerifyDeleteFile and VerifyDeleteDir. Both are called prior to deleting each file or directory. The arguments to the callback include the full filepath of the file or directory, and an output-only "skip" flag. If your application sets the skip flag to true, the file or directory is NOT deleted. If a directory is not deleted, all files and sub-directories will remain. Example programs can be found at http://www.example-code.com/

Returns 1 for success, 0 for failure.

(ASP) Delete FTP Directory Tree

(VB6) Delete FTP Directory Tree

(Delphi) Delete FTP Directory Tree

(FoxPro) Delete FTP Directory Tree

(VBScript) Delete FTP Directory Tree

DetermineProxyMethod() As Long

Automatically determines the ProxyMethod that should be used with an FTP proxy server. Tries each of the five possible ProxyMethod settings and returns the value (1-5) of the ProxyMethod that succeeded.

This method may take a minute or two to complete. Returns 0 if no proxy methods were successful. Returns -1 to indicate an error (i.e. it was unable to test all proxy methods.)

(ASP) Automatically Determine FTP Proxy Method

(VB6) Automatically Determine FTP Proxy Method

(Delphi) Automatically Determine FTP Proxy Method

(FoxPro) Automatically Determine FTP Proxy Method

(VBScript) Automatically Determine FTP Proxy Method

DetermineSettings() As String

Discovers which combinations of FTP2 property settings result in successful data transfers.

DetermineSettings tries 13 different combinations of these properties:

Ssl
AuthTls
AuthSsl
Port
Passive
PassiveUseHostAddr
Within the FTP protocol, the process of fetching a directory listing is also considered a “data transfer”. The DetermineSettings method works by checking to see which combinations result in a successful directory listing download. The method takes no arguments and returns a string containing an XML report of the results. It is a blocking call that may take approximately a minute to run. If you are unsure about how to interpret the results, cut-and-paste it into an email and send it to support@chilkatsoft.com.

Returns a null on failure

(ASP) DetermineSettings Example

(VB6) DetermineSettings Example

(Delphi) DetermineSettings Example

(FoxPro) DetermineSettings Example

(VBScript) DetermineSettings Example

DirTreeXml() As String

Recursively downloads the structure of a complete remote directory tree. Returns an XML document with the directory structure. A zero-length string is returned to indicate failure.

Returns a null on failure

(ASP) Download Directory Tree Listing as XML

(VB6) Download Directory Tree Listing as XML

(Delphi) Download Directory Tree Listing as XML

(FoxPro) Download Directory Tree Listing as XML

(VBScript) Download Directory Tree Listing as XML

Disconnect()

Disconnects from the FTP server, ending the current session.

Returns 1 for success, 0 for failure.

DownloadTree(localFilename As String) As Long

Downloads an entire tree from the FTP server and recreates the directory tree on the local filesystem.

This method downloads all the files and subdirectories in the current remote directory. An application would first navigate to the directory to be downloaded via ChangeRemoteDir and then call this method.

There are three event callbacks (for programming languages supporting events): BeginDownloadFile, EndDownloadFile, and VerifyDownloadDir. The 1st argument to each callback is the fully qualified pathname of the file or directory. The BeginDownloadFile event callbacks has a "skip" argument, which is output-only. The application can set it to true to prevent the file from being downloaded. The VerifyDownloadDir also has a "skip" argument where the application can cause an entire sub-tree to be skipped. The EndDownloadFile event includes a "numBytes" argument containing the size of the file in bytes.

Returns 1 for success, 0 for failure.

(ASP) Download Directory Tree Listing as XML

(VB6) Download Directory Tree Listing as XML

(Delphi) Download Directory Tree Listing as XML

(FoxPro) Download Directory Tree Listing as XML

(VBScript) Download Directory Tree Listing as XML

Feat() As String

Sends a FEAT command to the FTP server and returns the response. Returns a zero-length string to indicate failure. Here is a typical response:

211-Features:
 MDTM
 REST STREAM
 SIZE
 MLST type*;size*;modify*;
 MLSD
 AUTH SSL
 AUTH TLS
 UTF8
 CLNT
 MFMT
211 End

Returns a null on failure

(ASP) FTP FEAT Command

(VB6) FTP FEAT Command

(Delphi) FTP FEAT Command

(FoxPro) FTP FEAT Command

(VBScript) FTP FEAT Command

GetCreateTime(index As Long) As Date

Returns the create time for the Nth file or sub-directory in the current remote directory. The first file/dir is at index 0, and the last one is at index (NumFilesAndDirs-1)

GetCreateTimeByName(filename As String) As Date

Returns the file-creation time for a remote file by filename.

GetCurrentRemoteDir() As String

Returns the current remote directory.

Returns a null on failure

GetFile(remoteFilename As String, localFilename As String) As Long

Downloads a file from the FTP server to the local filesystem.

Returns 1 for success, 0 for failure.

GetFilename(index As Long) As String

Returns the filename for the Nth file or sub-directory in the current remote directory. The first file/dir is at index 0, and the last one is at index (NumFilesAndDirs-1)

Returns a null on failure

GetIsDirectory(index As Long) As Long

Returns 1 for a sub-directory and 0 for a file, for the Nth entry in the current remote directory. The first file/dir is at index 0, and the last one is at index (NumFilesAndDirs-1)

GetIsSymbolicLink(index As Long) As Long

Returns 1 if the remote file is a symbolic link. (Symbolic links only exist on Unix/Linux systems, not on Windows filesystems.)

GetLastAccessTime(index As Long) As Date

Returns the last access time for the Nth file or sub-directory in the current remote directory. The first file/dir is at index 0, and the last one is at index (NumFilesAndDirs-1)

GetLastAccessTimeByName(filename As String) As Date

Returns a remote file's last-access time.

GetLastModifiedTime(index As Long) As Date

Returns the last modified time for the Nth file or sub-directory in the current remote directory. The first file/dir is at index 0, and the last one is at index (NumFilesAndDirs-1)

GetLastModifiedTimeByName(filename As String) As Date

Returns the last-modified date/time for a remote file.

GetRemoteFileBinaryData(remoteFilename As String) As Variant

Downloads the contents of a remote file into a byte array.

Returns an empty Variant on failure.

Returns a zero-length byte array (as a Variant) on failure

GetRemoteFileTextC(remoteFilename As String, charset As String) As String

Downloads a text file directly into a string variable. The character encoding of the text file is specified by the charset argument, which is a value such as utf-8, iso-8859-1, Shift_JIS, etc.

Returns a null on failure

GetRemoteFileTextData(remoteFilename As String) As String

Downloads the content of a remote text file directly into an in-memory string.

Note: If the remote text file does not use the ANSI character encoding, call GetRemoteFileTextC instead, which allows for the character encoding to be specified so that characters are properly interpreted.

Returns a null on failure

GetSize(index As Long) As Long

Returns the size of the Nth remote file in the current directory.

GetSizeByName(filename As String) As Long

Returns a remote file's size in bytes.

GetSizeStr(index As Long) As String

Returns the size of a remote filename as a string. This is helpful for file sizes that are greater then 2GB.

Returns a null on failure

GetSizeStrByName(filename As String) As String

To be documented soon...

GetSslServerCert() As ChilkatCert

Returns the FTP server's digital certificate (for SSL / TLS connections).

GetTextDirListing(pattern As String) As String

Returns a listing of the files and directories in the current directory matching the pattern. Passing "*.*" will return all the files and directories.

Returns a null on failure

GetXmlDirListing(pattern As String) As String

Returns (in XML format) the files and directories in the current directory matching the pattern. Passing "*.*" will return all the files and directories.

Returns a null on failure

IsUnlocked() As Long

Return true if the component is already unlocked.

MGetFiles(remotePattern As String, localDir As String) As Long

Copies all the files in the current remote FTP directory to a local directory. To copy all the files in a remote directory, set remotePattern to "*.*" The pattern can contain any number of "*"characters where "*" matches 0 or more of any character. The return value is the number of files transferred, and on error, a value of -1 is returned. Detailed information about the transfer can be obtained from the last-error information (LastErrorText/LastErrorHtml/LastErrorXml/SaveLastError).

MPutFiles(pattern As String) As Long

Uploads all the files matching pattern on the local computer to the current remote FTP directory. The pattern parameter can include directory information, such as "C:/my_dir/*.txt" or it can simply be a pattern such as "*.*" that matches the files in the application's current directory. Subdirectories are not recursed. The return value is the number of files copied, with a value of -1 returned for errors. Detailed information about the transfer can be obtained from the XML log.[

Noop() As Long

Issues a no-op command to the FTP server.

PutFile(localFilename As String, remoteFilename As String) As Long

Uploads a local file to the current directory on the FTP server.

Returns 1 for success, 0 for failure.

PutFileFromBinaryData(remoteFilename As String, binaryData As Variant) As Long

Creates a file on the remote server containing the data passed in a byte array.

Returns 1 for success, 0 for failure.

PutFileFromTextData(remoteFilename As String, textData As String, charset As String) As Long

Creates a file on the remote server containing the data passed in a string. Returns true for success, false for failure.[

PutPlan(planStr As String, planLogFilename As String) As Long

Executes an "FTP plan" (created by the CreatePlan method) and logs each successful operation to a plan log file. If a large-scale upload is interrupted, the PutPlan can be resumed, skipping over the operations already listed in the plan log file. When resuming an interrupted PutPlan method, use the same log file. All completed operations found in the already-existing log will automatically be skipped.

Returns 1 for success, 0 for failure.

PutTree(localDir As String) As Long

Uploads an entire directory tree from the local filesystem to the remote FTP server, recreating the directory tree on the server. The PutTree method copies a directory tree to the current remote directory on the FTP server.

Returns 1 for success, 0 for failure.

Quote(cmd As String) As Long

Sends an arbitrary (raw) command to the FTP server and returns the raw response.

RemoveRemoteDir(dir As String) As Long

Removes a directory from the FTP server.

RenameRemoteFile(existingFilename As String, newFilename As String) As Long

Renames a file or directory on the FTP server. To move a file from one directory to another on a remote FTP server, call this method and include the source and destination directory filepath.

SaveLastError(filename As String)

Saves the last error information to an XML formatted file.

SendCommand(rawCommand As String) As String

Sends an raw command to the FTP server and returns the raw response.

Returns a null on failure

SetModeZ() As Long

Chilkat FTP2 supports MODE Z, which is a transfer mode implemented by some FTP servers. It allows for files to be uploaded and downloaded using compressed streams (using the zlib deflate algorithm).

Call this method after connecting to enable Mode Z. Once enabled, all transfers (uploads, downloads, and directory listings) are compressed.

Returns 1 for success, 0 for failure.

SetOldestDate(oldestDateTime As Date)

Used in conjunction with the DownloadTree method. Call this method prior to calling DownloadTree to set the oldest date for a file to be downloaded. When DownloadTree is called, any file older than this date will not be downloaded.

SetSslCertRequirement(reqName As String, reqValue As String)

Enforces a requirement on the FTP server's certificate. The reqName can be "SubjectDN", "SubjectCN", "IssuerDN", or "IssuerCN". The reqName specifies the part of the certificate, and the reqValue is the value that it must match (exactly). If the FTP server's certificate does not match, the SSL / TLS connection is aborted.

SetSslClientCert(iCert As ChilkatCert)

Allows for a client-side certificate to be used for the SSL / TLS connection.

SetTypeAscii() As Long

Set the FTP transfer mode to us-ascii.

Returns 1 for success, 0 for failure.

SetTypeBinary() As Long

Set the FTP transfer mode to binary.

Returns 1 for success, 0 for failure.

Site(params As String) As Long

Sends an arbitrary "site" command to the FTP server. The params argument should contain the parameters to the site command as they would appear on a command line. For example: "recfm=fb lrecl=600".

Returns 1 for success, 0 for failure.

SleepMs(milliSec As Long)

Causes the calling process to sleep for a number of milliseconds.

Stat() As String

Sends a STAT command to the FTP server and returns the server's reply.

Returns a null on failure

SyncLocalTree(localDirRoot As String, mode As Long) As Long

Downloads files from the FTP server to a local directory tree. Synchronization modes include:

mode=0: Download all files
mode=1: Download all files that do not exist on the local filesystem.
mode=2: Download newer or non-existant files.
mode=3: Download only newer files. If a file does not already exist on the local filesystem, it is not downloaded from the server.

(ASP) Example: Synchronize Local Directory Tree

(VB6) Example: Synchronize Local Directory Tree

(Delphi) Example: Synchronize Local Directory Tree

(FoxPro) Example: Synchronize Local Directory Tree

(VBScript) Example: Synchronize Local Directory Tree

SyncRemoteTree(localDirRoot As String, mode As Long) As Long

Uploads a directory tree from the local filesystem to the FTP server. Synchronization modes include:

mode=0: Upload all files
mode=1: Upload all files that do not exist on the FTP server.
mode=2: Upload newer or non-existant files.
mode=3: Upload only newer files. If a file does not already exist on the FTP server, it is not uploaded.

(ASP) Example: Synchronize Remote Directory Tree

(VB6) Example: Synchronize Remote Directory Tree

(Delphi) Example: Synchronize Remote Directory Tree

(FoxPro) Example: Synchronize Remote Directory Tree

(VBScript) Example: Synchronize Remote Directory Tree

Syst() As String

Sends a SYST command to the FTP server to find out the type of operating system at the server. The method returns the FTP server's response string. Refer to RFC 959 for details.

Returns a null on failure

UnlockComponent(b1 As String) As Long

Unlocks the component. This must be called once prior to calling any other method.