Sample code for 30+ languages & platforms
Xbase++

Restart/Resume FTP Download

See more FTP Examples

Resume downloading a file from an FTP server.

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oFtp
LOCAL cLocalFilename
LOCAL cRemoteFilename

nSuccess := 0

//  This example requires the Chilkat API to have been previously unlocked.
//  See Global Unlock Sample for sample code.

oFtp := CreateObject("Chilkat.Ftp2")

oFtp:Hostname := "ftp.example.com"
oFtp:Username := "login"
oFtp:Password := "password"

//  Connect and login to the FTP server.
nSuccess := oFtp:Connect()
IF (nSuccess != 1)
    ? oFtp:LastErrorText
    oFtp:destroy()
    RETURN
ENDIF

//  Change to the remote directory where the file is located.
//  This step is only necessary if the file is not in the root directory
//  for the FTP account.
nSuccess := oFtp:ChangeRemoteDir("temp")
IF (nSuccess != 1)
    ? oFtp:LastErrorText
    oFtp:destroy()
    RETURN
ENDIF

//  To resume a download, it is assumed that the partial file
//  is already present on the local filesystem.
//  You only need to set the RestartNext property to resume
//  the download.  The Chilkat FTP component sets the resume
//  point by getting the existing size of the target (local) file.
oFtp:RestartNext := 1

cLocalFilename := "big.zip"
cRemoteFilename := "big.zip"

//  Resume downloading...
nSuccess := oFtp:GetFile(cRemoteFilename, cLocalFilename)
IF (nSuccess != 1)
    ? oFtp:LastErrorText
    oFtp:destroy()
    RETURN
ENDIF

nSuccess := oFtp:Disconnect()

? "File Downloaded!"

oFtp:destroy()