Xbase++
Xbase++
SFTP Read Text File to String
See more SFTP Examples
Demonstrates how to download a text file from an SSH server directly into a string variable.Chilkat Xbase++ Downloads
LOCAL nSuccess
LOCAL oSftp
LOCAL cHostname
LOCAL nPort
LOCAL cHandle
LOCAL nBFollowLinks
LOCAL nBIsHandle
LOCAL nNumBytes
LOCAL cCharset
LOCAL cFileContents
nSuccess := 0
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
oSftp := CreateObject("Chilkat.SFtp")
// Set some timeouts, in milliseconds:
oSftp:ConnectTimeoutMs := 5000
oSftp:IdleTimeoutMs := 15000
// Connect to the SSH server.
// The standard SSH port = 22
// The hostname may be a hostname or IP address.
cHostname := "sftp.example.com"
nPort := 22
nSuccess := oSftp:Connect(cHostname, nPort)
IF (nSuccess != 1)
? oSftp:LastErrorText
oSftp:destroy()
RETURN
ENDIF
// Authenticate with the SSH server. Chilkat SFTP supports
// both password-based authenication as well as public-key
// authentication. This example uses password authenication.
nSuccess := oSftp:AuthenticatePw("myLogin", "myPassword")
IF (nSuccess != 1)
? oSftp:LastErrorText
oSftp:destroy()
RETURN
ENDIF
// After authenticating, the SFTP subsystem must be initialized:
nSuccess := oSftp:InitializeSftp()
IF (nSuccess != 1)
? oSftp:LastErrorText
oSftp:destroy()
RETURN
ENDIF
// Open a file on the server:
cHandle := oSftp:OpenFile("hamlet.xml", "readOnly", "openExisting")
IF (oSftp:LastMethodSuccess != 1)
? oSftp:LastErrorText
oSftp:destroy()
RETURN
ENDIF
// Get the total size of this file (in bytes)
nBFollowLinks := 0
nBIsHandle := 1
// bFollowLinks is ignored because we are passing a handle
// and not a remote filename.
// There are alternative methods for handling file sizes
// greater than 32-bit. (See the reference documentation.)
nNumBytes := oSftp:GetFileSize32(cHandle, nBFollowLinks, nBIsHandle)
IF (nNumBytes < 0)
? oSftp:LastErrorText
oSftp:destroy()
RETURN
ENDIF
// The charset indicates the character encoding of the text
// file on the SSH server. Setting the charset correctly
// allows the Chilkat SFTP component to correctly interpret
// the bytes that represent the characters.
cCharset := "ansi"
cFileContents := oSftp:ReadFileText(cHandle, nNumBytes, cCharset)
IF (oSftp:LastMethodSuccess != 1)
? oSftp:LastErrorText
oSftp:destroy()
RETURN
ELSE
? "Received file:"
? cFileContents
ENDIF
// Close the file.
nSuccess := oSftp:CloseHandle(cHandle)
IF (nSuccess != 1)
? oSftp:LastErrorText
oSftp:destroy()
RETURN
ENDIF
? "Success."
oSftp:destroy()