PureBasic
PureBasic
SFTP Simplified Download
See more SFTP Examples
Demonstrates how to SFTP download a file by passing a remote filepath to DownloadFileByName.Chilkat PureBasic Downloads
IncludeFile "CkSFtp.pb"
Procedure ChilkatExample()
success.i = 0
; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
sftp.i = CkSFtp::ckCreate()
If sftp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Set some timeouts, in milliseconds:
CkSFtp::setCkConnectTimeoutMs(sftp, 15000)
CkSFtp::setCkIdleTimeoutMs(sftp, 15000)
; Connect to the SSH server.
; The standard SSH port = 22
; The hostname may be a hostname or IP address.
hostname.s = "sftp.example.com"
port.i = 22
success = CkSFtp::ckConnect(sftp,hostname,port)
If success <> 1
Debug CkSFtp::ckLastErrorText(sftp)
CkSFtp::ckDispose(sftp)
ProcedureReturn
EndIf
; Authenticate with the SSH server. Chilkat SFTP supports
; both password-based authenication as well as public-key
; authentication. This example uses password authenication.
success = CkSFtp::ckAuthenticatePw(sftp,"myLogin","myPassword")
If success <> 1
Debug CkSFtp::ckLastErrorText(sftp)
CkSFtp::ckDispose(sftp)
ProcedureReturn
EndIf
; After authenticating, the SFTP subsystem must be initialized:
success = CkSFtp::ckInitializeSftp(sftp)
If success <> 1
Debug CkSFtp::ckLastErrorText(sftp)
CkSFtp::ckDispose(sftp)
ProcedureReturn
EndIf
; Download the file:
remoteFilePath.s
localFilePath.s
localFilePath = "c:/temp/hamlet.xml"
; Note: The remote filepath may be an absolute filepath,
; a relative filepath, or simply a filename.
; Relative filepaths are always relative to the home directory
; of the SFTP/SSH user account. There is no such thing
; as "current remote directory" in the SFTP protocol.
; A filename with no path implies that the file is located
; in the SFTP user account's home directory.
remoteFilePath = "subdir1/subdir2/hamlet.xml"
success = CkSFtp::ckDownloadFileByName(sftp,remoteFilePath,localFilePath)
If success <> 1
Debug CkSFtp::ckLastErrorText(sftp)
CkSFtp::ckDispose(sftp)
ProcedureReturn
EndIf
Debug "Success."
CkSFtp::ckDispose(sftp)
ProcedureReturn
EndProcedure