Sample code for 30+ languages & platforms
Go

SFTP Get File Date/Times in Different Formats

See more SFTP Examples

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

Chilkat Go Downloads

Go
    success := false

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

    sftp := chilkat.NewSFtp()

    // Connect to the SSH server.  
    hostname := "my-sftp-server.com"
    port := 22
    success = sftp.Connect(hostname,port)
    if success == false {
        fmt.Println(sftp.LastErrorText())
        sftp.DisposeSFtp()
        return
    }

    // Authenticate with the SSH server. 
    success = sftp.AuthenticatePw("myLogin","myPassword")
    if success == false {
        fmt.Println(sftp.LastErrorText())
        sftp.DisposeSFtp()
        return
    }

    // After authenticating, the SFTP subsystem must be initialized:
    success = sftp.InitializeSftp()
    if success == false {
        fmt.Println(sftp.LastErrorText())
        sftp.DisposeSFtp()
        return
    }

    // Open a directory on the server...
    // This example opens the "junk" directory located under the HOME directory of the SSH user account.
    handle := sftp.OpenDir("junk")
    if sftp.LastMethodSuccess() == false {
        fmt.Println(sftp.LastErrorText())
        sftp.DisposeSFtp()
        return
    }

    // Download the directory listing:

    dirListing := chilkat.NewSFtpDir()
    success = sftp.ReadDirListing(*handle,dirListing)
    if success == false {
        fmt.Println(sftp.LastErrorText())
        sftp.DisposeSFtp()
        dirListing.DisposeSFtpDir()
        return
    }

    // Close the directory handle
    success = sftp.CloseHandle(*handle)
    if success == false {
        fmt.Println(sftp.LastErrorText())
        sftp.DisposeSFtp()
        dirListing.DisposeSFtpDir()
        return
    }

    // 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")
    fileObj := chilkat.NewSFtpFile()
    sbFilename := chilkat.NewStringBuilder()
    caseSensitive := false
    bLocalDateTime := false

    dt := chilkat.NewCkDateTime()
    i := 0
    n := dirListing.NumFilesAndDirs()
    for i < n {

        success = dirListing.FileAt(i,fileObj)
        if success == false {
            fmt.Println(dirListing.LastErrorText())
            sftp.DisposeSFtp()
            dirListing.DisposeSFtpDir()
            fileObj.DisposeSFtpFile()
            sbFilename.DisposeStringBuilder()
            dt.DisposeCkDateTime()
            return
        }

        fmt.Println(fileObj.Filename())

        // Get the last-modified date/time
        dt.SetFromRfc822(fileObj.LastModifiedTimeStr())

        // Get the date/time in other formats offered by the CkDateTime object.

        // such as Wed, 18 Oct 2017 09:08:21 GMT
        fmt.Println("RFC822 format: ", *dt.GetAsRfc822(bLocalDateTime))

        // such as 1990-12-31T23:59:60Z
        fmt.Println("Timestamp: ", *dt.GetAsTimestamp(bLocalDateTime))

        // Such as: "02/16/2008 12:15:12"  where hour is 0 to 23.
        fmt.Println("RFC822 format: ", *dt.GetAsIso8601("MM/DD/YYYY hh:mm:ss",bLocalDateTime))

        i = i + 1
    }

    fmt.Println("Success.")

    sftp.DisposeSFtp()
    dirListing.DisposeSFtpDir()
    fileObj.DisposeSFtpFile()
    sbFilename.DisposeStringBuilder()
    dt.DisposeCkDateTime()