AutoIt
AutoIt
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 AutoIt Downloads
Local $bSuccess = False
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
$oFtp = ObjCreate("Chilkat.Ftp2")
; Set the various properties to establish the connection.
$oFtp.Hostname = "ftp.example.com"
$oFtp.Username = "login"
$oFtp.Password = "password"
; If SSL/TLS is required..
; See http://www.cknotes.com/determining-ftp2-connection-settings/
; for more information.
$oFtp.AuthTls = True
$oFtp.PassiveUseHostAddr = True
; Connect to the FTP server:
$bSuccess = $oFtp.ConnectOnly()
If ($bSuccess <> True) Then
ConsoleWrite($oFtp.LastErrorText & @CRLF)
Exit
EndIf
; Authenticate with the FTP server.
$bSuccess = $oFtp.LoginAfterConnectOnly()
If ($bSuccess <> True) Then
ConsoleWrite($oFtp.LastErrorText & @CRLF)
Exit
EndIf
; To get file permissions in UNIX format, disallow MSLD:
$oFtp.AllowMlsd = False
; To get file and sub-directory information, simply
; loop from 0 to ftp.GetDirCount() - 1
Local $i = 0
Local $iN = $oFtp.GetDirCount()
If ($iN < 0) Then
ConsoleWrite($oFtp.LastErrorText & @CRLF)
Exit
EndIf
; 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 ($iN > 0) Then
ConsoleWrite("The permissions format is: " & $oFtp.GetPermType(0) & @CRLF)
EndIf
While $i < $iN
; Display the permissions and filename
ConsoleWrite($oFtp.GetPermissions($i) & " " & $oFtp.GetFilename($i) & @CRLF)
$i = $i + 1
Wend
; Assuming MLSD was possible, let's see the file permissions in MLSD format:
$oFtp.AllowMlsd = True
; Clear the directory cache so we're forced to re-fetch the directory listing:
$oFtp.ClearDirCache
$iN = $oFtp.GetDirCount()
If ($iN < 0) Then
ConsoleWrite($oFtp.LastErrorText & @CRLF)
Exit
EndIf
; 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 ($iN > 0) Then
ConsoleWrite("----" & @CRLF)
ConsoleWrite("The permissions format is: " & $oFtp.GetPermType(0) & @CRLF)
EndIf
$i = 0
While $i < $iN
; Display the permissions and filename
ConsoleWrite($oFtp.GetPermissions($i) & " " & $oFtp.GetFilename($i) & @CRLF)
$i = $i + 1
Wend
$bSuccess = $oFtp.Disconnect()