Go
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
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()