Sample code for 30+ languages & platforms
PureBasic

Transition from SFtp.ReadDir to SFtp.ReadDirListing

Provides instructions for replacing deprecated ReadDir method calls with ReadDirListing.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkSFtpDir.pb"
IncludeFile "CkSFtp.pb"

Procedure ChilkatExample()

    success.i = 0

    sftp.i = CkSFtp::ckCreate()
    If sftp.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; ...
    ; ...

    handle.s = CkSFtp::ckOpenDir(sftp,".")
    ; ...
    ; ...

    ; ------------------------------------------------------------------------
    ; The ReadDir method is deprecated:

    dirObj.i = CkSFtp::ckReadDir(sftp,handle)
    If CkSFtp::ckLastMethodSuccess(sftp) = 0
        Debug CkSFtp::ckLastErrorText(sftp)
        CkSFtp::ckDispose(sftp)
        ProcedureReturn
    EndIf

    ; ...
    ; ...

    CkSFtpDir::ckDispose(dirObj)

    ; ------------------------------------------------------------------------
    ; Do the equivalent using ReadDirListing.
    ; Your application creates a new, empty SFtpDir object which is passed 
    ; in the last argument and filled upon success.

    dirOut.i = CkSFtpDir::ckCreate()
    If dirOut.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkSFtp::ckReadDirListing(sftp,handle,dirOut)
    If success = 0
        Debug CkSFtp::ckLastErrorText(sftp)
        CkSFtp::ckDispose(sftp)
        CkSFtpDir::ckDispose(dirOut)
        ProcedureReturn
    EndIf

    ; ...
    ; ...

    CkSFtp::ckCloseHandle(sftp,handle)


    CkSFtp::ckDispose(sftp)
    CkSFtpDir::ckDispose(dirOut)


    ProcedureReturn
EndProcedure