Sample code for 30+ languages & platforms
Visual FoxPro

Get a Remote File's Creation Time

See more SFTP Examples

Demonstrates the Chilkat SFtp.GetFileCreateTimeStr method, which returns a remote file's creation date and time. The arguments are the remote path (or handle), whether symbolic links are followed, and whether the first argument is a handle.

Background: Creation time is the least universally available of the three timestamps: many Unix filesystems historically tracked only modified and accessed times, so a server may return nothing or a placeholder. Where it is supported it is genuinely useful — it does not change when a file is edited, unlike the modified time — but code should tolerate its absence rather than depend on it.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loSftp
LOCAL lnPort
LOCAL lcPassword
LOCAL lnBFollowLinks
LOCAL lnBIsHandle
LOCAL lcCreateTime

lnSuccess = 0

*  Demonstrates the SFtp.GetFileCreateTimeStr method, which returns a remote file's creation date
*  and time.  The 1st argument is the remote path (or handle), the 2nd selects whether symbolic
*  links are followed, and the 3rd indicates whether the 1st argument is a handle.

loSftp = CreateObject('Chilkat.SFtp')

*  Connect, authenticate, and initialize the SFTP subsystem.
lnPort = 22
lnSuccess = loSftp.Connect("sftp.example.com",lnPort)
IF (lnSuccess = 0) THEN
    ? loSftp.LastErrorText
    RELEASE loSftp
    CANCEL
ENDIF

*  Normally you would not hard-code the password in source.  You should instead obtain it
*  from an interactive prompt, environment variable, or a secrets vault.
lcPassword = "mySshPassword"

lnSuccess = loSftp.AuthenticatePw("mySshLogin",lcPassword)
IF (lnSuccess = 0) THEN
    ? loSftp.LastErrorText
    RELEASE loSftp
    CANCEL
ENDIF

lnSuccess = loSftp.InitializeSftp()
IF (lnSuccess = 0) THEN
    ? loSftp.LastErrorText
    RELEASE loSftp
    CANCEL
ENDIF

*  The 2nd argument (bFollowLinks) selects whether a symbolic link is followed to its target.
*  The 3rd argument (bIsHandle) is 0 here because the 1st argument is a path, not an
*  open handle.
lnBFollowLinks = 1
lnBIsHandle = 0

lcCreateTime = loSftp.GetFileCreateTimeStr("subdir/report.pdf",lnBFollowLinks,lnBIsHandle)
IF (loSftp.LastMethodSuccess = 0) THEN
    ? loSftp.LastErrorText
    RELEASE loSftp
    CANCEL
ENDIF

? "Created: " + lcCreateTime

*  Note: Not all servers and filesystems record a creation time.

loSftp.Disconnect()

RELEASE loSftp