Visual FoxPro
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
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