Sample code for 30+ languages & platforms
PowerShell

SFTP Get File Date/Times in Different Formats

See more SFTP Examples

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

Chilkat PowerShell Downloads

PowerShell
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"

$success = $false

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

$sftp = New-Object Chilkat.SFtp

# Connect to the SSH server.  
$hostname = "my-sftp-server.com"
$port = 22
$success = $sftp.Connect($hostname,$port)
if ($success -eq $false) {
    $($sftp.LastErrorText)
    exit
}

# Authenticate with the SSH server. 
$success = $sftp.AuthenticatePw("myLogin","myPassword")
if ($success -eq $false) {
    $($sftp.LastErrorText)
    exit
}

# After authenticating, the SFTP subsystem must be initialized:
$success = $sftp.InitializeSftp()
if ($success -eq $false) {
    $($sftp.LastErrorText)
    exit
}

# 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 -eq $false) {
    $($sftp.LastErrorText)
    exit
}

# Download the directory listing:

$dirListing = New-Object Chilkat.SFtpDir
$success = $sftp.ReadDirListing($handle,$dirListing)
if ($success -eq $false) {
    $($sftp.LastErrorText)
    exit
}

# Close the directory handle
$success = $sftp.CloseHandle($handle)
if ($success -eq $false) {
    $($sftp.LastErrorText)
    exit
}

# 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 = New-Object Chilkat.SFtpFile
$sbFilename = New-Object Chilkat.StringBuilder
$caseSensitive = $false
$bLocalDateTime = $false

$dt = New-Object Chilkat.CkDateTime
$i = 0
$n = $dirListing.NumFilesAndDirs
while ($i -lt $n) {

    $success = $dirListing.FileAt($i,$fileObj)
    if ($success -eq $false) {
        $($dirListing.LastErrorText)
        exit
    }

    $($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
    $("RFC822 format: " + $dt.GetAsRfc822($bLocalDateTime))

    # such as 1990-12-31T23:59:60Z
    $("Timestamp: " + $dt.GetAsTimestamp($bLocalDateTime))

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

    $i = $i + 1
}

$("Success.")