Sample code for 30+ languages & platforms
PureBasic

FTP Set Remote File Date/Time Equal to Local File's Last-Modified Date/Time

See more FTP Examples

Demonstrates how to set a remote file's date/time to be equal to a local file's date/time.

Important: Not all FTP servers support the ability to set a file's date/time.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkFtp2.pb"
IncludeFile "CkFileAccess.pb"
IncludeFile "CkDateTime.pb"

Procedure ChilkatExample()

    success.i = 0

    ; This example assumes Chilkat Ftp2 to have been previously unlocked.
    ; See Unlock Ftp2 for sample code.

    ftp.i = CkFtp2::ckCreate()
    If ftp.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkFtp2::setCkHostname(ftp, "www.authtls-ftps-server.com")
    CkFtp2::setCkUsername(ftp, "FTP_LOGIN")
    CkFtp2::setCkPassword(ftp, "FTP_PASSWORD")
    CkFtp2::setCkAuthTls(ftp, 1)
    CkFtp2::setCkPort(ftp, 21)

    ; Connect to the FTP server using explicit TLS (AUTH TLS).
    success = CkFtp2::ckConnectOnly(ftp)
    If success = 0
        Debug CkFtp2::ckLastErrorText(ftp)
        CkFtp2::ckDispose(ftp)
        ProcedureReturn
    EndIf

    ; Authenticate.
    success = CkFtp2::ckLoginAfterConnectOnly(ftp)
    If success = 0
        Debug CkFtp2::ckLastErrorText(ftp)
        CkFtp2::ckDispose(ftp)
        ProcedureReturn
    EndIf

    ; We're going to get the last-mod date/time for the local file
    ; "qa_data/hamlet.xml", and then set the remote "hamlet.xml" to this date/time.
    fac.i = CkFileAccess::ckCreate()
    If fac.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    dt.i = CkDateTime::ckCreate()
    If dt.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    lastModTimestamp.s = CkFileAccess::ckGetFileTimeStr(fac,"qa_data/hamlet.xml",0)
    CkDateTime::ckSetFromTimestamp(dt,lastModTimestamp)

    success = CkFtp2::ckSetRemoteFileDt(ftp,dt,"hamlet.xml")
    If success <> 1
        Debug CkFtp2::ckLastErrorText(ftp)
        CkDateTime::ckDispose(dt)

        CkFtp2::ckDispose(ftp)
        CkFileAccess::ckDispose(fac)
        CkDateTime::ckDispose(dt)
        ProcedureReturn
    EndIf

    CkFtp2::ckDisconnect(ftp)

    Debug "Success."


    CkFtp2::ckDispose(ftp)
    CkFileAccess::ckDispose(fac)
    CkDateTime::ckDispose(dt)


    ProcedureReturn
EndProcedure