Sample code for 30+ languages & platforms
Lianja

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