Swift
Swift
SFTP Get File Date/Times in Different Formats
See more SFTP Examples
Demonstrates how to get remote file date/times in different formats.Chilkat Swift Downloads
func chilkatTest() {
var success: Bool = false
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
let sftp = CkoSFtp()!
// Connect to the SSH server.
var hostname: String? = "my-sftp-server.com"
var port: Int = 22
success = sftp.connect(hostname: hostname, port: port)
if success == false {
print("\(sftp.lastErrorText!)")
return
}
// Authenticate with the SSH server.
success = sftp.authenticatePw(login: "myLogin", password: "myPassword")
if success == false {
print("\(sftp.lastErrorText!)")
return
}
// After authenticating, the SFTP subsystem must be initialized:
success = sftp.initializeSftp()
if success == false {
print("\(sftp.lastErrorText!)")
return
}
// Open a directory on the server...
// This example opens the "junk" directory located under the HOME directory of the SSH user account.
var handle: String? = sftp.openDir(path: "junk")
if sftp.lastMethodSuccess == false {
print("\(sftp.lastErrorText!)")
return
}
// Download the directory listing:
let dirListing = CkoSFtpDir()!
success = sftp.readDirListing(handle: handle, dirObj: dirListing)
if success == false {
print("\(sftp.lastErrorText!)")
return
}
// Close the directory handle
success = sftp.closeHandle(sftpHandle: handle)
if success == false {
print("\(sftp.lastErrorText!)")
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")
let fileObj = CkoSFtpFile()!
let sbFilename = CkoStringBuilder()!
var caseSensitive: Bool = false
var bLocalDateTime: Bool = false
let dt = CkoDateTime()!
var i: Int = 0
var n: Int = dirListing.numFilesAndDirs.intValue
while i < n {
success = dirListing.file(at: i, fileObj: fileObj)
if success == false {
print("\(dirListing.lastErrorText!)")
return
}
print("\(fileObj.filename!)")
// Get the last-modified date/time
dt.set(fromRfc822: fileObj.lastModifiedTimeStr)
// Get the date/time in other formats offered by the CkDateTime object.
// such as Wed, 18 Oct 2017 09:08:21 GMT
print("RFC822 format: \(dt.get(asRfc822: bLocalDateTime)!)")
// such as 1990-12-31T23:59:60Z
print("Timestamp: \(dt.get(asTimestamp: bLocalDateTime)!)")
// Such as: "02/16/2008 12:15:12" where hour is 0 to 23.
print("RFC822 format: \(dt.get(asIso8601: "MM/DD/YYYY hh:mm:ss", bLocal: bLocalDateTime)!)")
i = i + 1
}
print("Success.")
}