Sample code for 30+ languages & platforms
Visual FoxPro

SFTP Get File Date/Times in Different Formats

See more SFTP Examples

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

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loSftp
LOCAL lcHostname
LOCAL lnPort
LOCAL lcHandle
LOCAL loDirListing
LOCAL loFileObj
LOCAL loSbFilename
LOCAL lnCaseSensitive
LOCAL lnBLocalDateTime
LOCAL loDt
LOCAL i
LOCAL n

lnSuccess = 0

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

loSftp = CreateObject('Chilkat.SFtp')

* Connect to the SSH server.  
lcHostname = "my-sftp-server.com"
lnPort = 22
lnSuccess = loSftp.Connect(lcHostname,lnPort)
IF (lnSuccess = 0) THEN
    ? loSftp.LastErrorText
    RELEASE loSftp
    CANCEL
ENDIF

* Authenticate with the SSH server. 
lnSuccess = loSftp.AuthenticatePw("myLogin","myPassword")
IF (lnSuccess = 0) THEN
    ? loSftp.LastErrorText
    RELEASE loSftp
    CANCEL
ENDIF

* After authenticating, the SFTP subsystem must be initialized:
lnSuccess = loSftp.InitializeSftp()
IF (lnSuccess = 0) THEN
    ? loSftp.LastErrorText
    RELEASE loSftp
    CANCEL
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 = 0) THEN
    ? loSftp.LastErrorText
    RELEASE loSftp
    CANCEL
ENDIF

* Download the directory listing:

loDirListing = CreateObject('Chilkat.SFtpDir')
lnSuccess = loSftp.ReadDirListing(lcHandle,loDirListing)
IF (lnSuccess = 0) THEN
    ? loSftp.LastErrorText
    RELEASE loSftp
    RELEASE loDirListing
    CANCEL
ENDIF

* Close the directory handle
lnSuccess = loSftp.CloseHandle(lcHandle)
IF (lnSuccess = 0) THEN
    ? loSftp.LastErrorText
    RELEASE loSftp
    RELEASE loDirListing
    CANCEL
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('Chilkat.SFtpFile')
loSbFilename = CreateObject('Chilkat.StringBuilder')
lnCaseSensitive = 0
lnBLocalDateTime = 0

loDt = CreateObject('Chilkat.CkDateTime')
i = 0
n = loDirListing.NumFilesAndDirs
DO WHILE i < n

    lnSuccess = loDirListing.FileAt(i,loFileObj)
    IF (lnSuccess = 0) THEN
        ? loDirListing.LastErrorText
        RELEASE loSftp
        RELEASE loDirListing
        RELEASE loFileObj
        RELEASE loSbFilename
        RELEASE loDt
        CANCEL
    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(lnBLocalDateTime)

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

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

    i = i + 1
ENDDO

? "Success."

RELEASE loSftp
RELEASE loDirListing
RELEASE loFileObj
RELEASE loSbFilename
RELEASE loDt