Sample code for 30+ languages & platforms
Lianja Requires Chilkat v11.0.0+

SFTP Get File Date/Times in Different Formats

See more SFTP Examples

Demonstrates how to get remote file date/times in different formats.

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

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

loSftp = createobject("CkSFtp")

//  Connect to the SSH server.  
lcHostname = "my-sftp-server.com"
lnPort = 22
llSuccess = loSftp.Connect(lcHostname,lnPort)
if (llSuccess = .F.) then
    ? loSftp.LastErrorText
    release loSftp
    return
endif

//  Authenticate with the SSH server. 
llSuccess = loSftp.AuthenticatePw("myLogin","myPassword")
if (llSuccess = .F.) then
    ? loSftp.LastErrorText
    release loSftp
    return
endif

//  After authenticating, the SFTP subsystem must be initialized:
llSuccess = loSftp.InitializeSftp()
if (llSuccess = .F.) then
    ? loSftp.LastErrorText
    release loSftp
    return
endif

//  Open a directory on the server...
//  This example opens the "junk" directory located under the HOME directory of the SSH user account.
lcHandle = loSftp.OpenDir("junk")
if (loSftp.LastMethodSuccess = .F.) then
    ? loSftp.LastErrorText
    release loSftp
    return
endif

//  Download the directory listing:

loDirListing = createobject("CkSFtpDir")
llSuccess = loSftp.ReadDirListing(lcHandle,loDirListing)
if (llSuccess = .F.) then
    ? loSftp.LastErrorText
    release loSftp
    release loDirListing
    return
endif

//  Close the directory handle
llSuccess = loSftp.CloseHandle(lcHandle)
if (llSuccess = .F.) then
    ? loSftp.LastErrorText
    release loSftp
    release loDirListing
    return
endif

//  Iterate over the files.
//  Examine each filename and indicate those that match *FICHERO*.pdf
//  (i.e. the filename contains the word "FICHERO" and ends in ".pdf")
loFileObj = createobject("CkSFtpFile")
loSbFilename = createobject("CkStringBuilder")
llCaseSensitive = .F.
llBLocalDateTime = .F.

loDt = createobject("CkDateTime")
i = 0
n = loDirListing.NumFilesAndDirs
do while i < n

    llSuccess = loDirListing.FileAt(i,loFileObj)
    if (llSuccess = .F.) then
        ? loDirListing.LastErrorText
        release loSftp
        release loDirListing
        release loFileObj
        release loSbFilename
        release loDt
        return
    endif

    ? loFileObj.Filename

    //  Get the last-modified date/time
    loDt.SetFromRfc822(loFileObj.LastModifiedTimeStr)

    //  Get the date/time in other formats offered by the CkDateTime object.

    //  such as Wed, 18 Oct 2017 09:08:21 GMT
    ? "RFC822 format: " + loDt.GetAsRfc822(llBLocalDateTime)

    //  such as 1990-12-31T23:59:60Z
    ? "Timestamp: " + loDt.GetAsTimestamp(llBLocalDateTime)

    //  Such as: "02/16/2008 12:15:12"  where hour is 0 to 23.
    ? "RFC822 format: " + loDt.GetAsIso8601("MM/DD/YYYY hh:mm:ss",llBLocalDateTime)

    i = i + 1
enddo

? "Success."


release loSftp
release loDirListing
release loFileObj
release loSbFilename
release loDt