Sample code for 30+ languages & platforms
PureBasic

Check if File Exists

See more SFTP Examples

Demonstrates how to check to see if a file exists.

Chilkat PureBasic Downloads

PureBasic
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

    ; Connect to the SSH server.  
    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

    ; Check to see if a file exists

    ; The return value is one of the following values:
    ; -1: Unable to check. Examine the LastErrorText to determine the reason for failure.
    ; 0: File does not exist.
    ; 1: The regular file exists.
    ; 2: It exists, but it is a directory.
    ; 3: It exists, but it is a symlink (only possible if followLinks is false)
    ; 4: It exists, but it is a special filesystem entry type.
    ; 5: It exists, but it is an unkown filesystem entry type.
    ; 6: It exists, but it is an socket filesystem entry type.
    ; 7: It exists, but it is an char device entry type.
    ; 8: It exists, but it is an block device entry type.
    ; 9: It exists, but it is an FIFO entry type.

    followLinks.i = 1
    status.i = CkSFtp::ckFileExists(sftp,"someDir/someFile.txt",followLinks)
    If status < 0
        Debug CkSFtp::ckLastErrorText(sftp)
        CkSFtp::ckDispose(sftp)
        ProcedureReturn
    EndIf

    Debug "status = " + Str(status)

    Debug "Success"


    CkSFtp::ckDispose(sftp)


    ProcedureReturn
EndProcedure