Sample code for 30+ languages & platforms
PowerShell

Get FTP File Permissions

See more FTP Examples

_LANGUAGE_ example showing how to retrieve file permissions (via FTP) for each file in a remote directory.

Chilkat PowerShell Downloads

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

$success = $false

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

$ftp = New-Object Chilkat.Ftp2

# Set the various properties to establish the connection.
$ftp.Hostname = "ftp.example.com"
$ftp.Username = "login"
$ftp.Password = "password"

# If SSL/TLS is required..
# See http://www.cknotes.com/determining-ftp2-connection-settings/ 
# for more information.
$ftp.AuthTls = $true
$ftp.PassiveUseHostAddr = $true

# Connect to the FTP server:
$success = $ftp.ConnectOnly()
if ($success -ne $true) {
    $($ftp.LastErrorText)
    exit
}

# Authenticate with the FTP server.
$success = $ftp.LoginAfterConnectOnly()
if ($success -ne $true) {
    $($ftp.LastErrorText)
    exit
}

# To get file permissions in UNIX format, disallow MSLD:
$ftp.AllowMlsd = $false

# To get file and sub-directory information, simply
# loop from 0 to ftp.GetDirCount() - 1
$i = 0
$n = $ftp.GetDirCount()
if ($n -lt 0) {
    $($ftp.LastErrorText)
    exit
}

# Show the type of permissions information that is available.
# The two most common types are "mlsd" and "unix".  See the
# online reference documentation for more information.
if ($n -gt 0) {
    $("The permissions format is: " + $ftp.GetPermType(0))
}

while ($i -lt $n) {

    # Display the permissions and filename
    $($ftp.GetPermissions($i) + " " + $ftp.GetFilename($i))

    $i = $i + 1
}

# Assuming MLSD was possible, let's see the file permissions in MLSD format:
$ftp.AllowMlsd = $true

# Clear the directory cache so we're forced to re-fetch the directory listing:
$ftp.ClearDirCache()

$n = $ftp.GetDirCount()
if ($n -lt 0) {
    $($ftp.LastErrorText)
    exit
}

# Show the type of permissions information that is available.
# The two most common types are "mlsd" and "unix".  See the
# online reference documentation for more information.
if ($n -gt 0) {
    $("----")
    $("The permissions format is: " + $ftp.GetPermType(0))
}

$i = 0
while ($i -lt $n) {

    # Display the permissions and filename
    $($ftp.GetPermissions($i) + " " + $ftp.GetFilename($i))

    $i = $i + 1
}

$success = $ftp.Disconnect()