DataFlex
DataFlex
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 DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoFtp
Integer i
Integer n
String sTemp1
String sTemp2
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatFtp2)) To hoFtp
If (Not(IsComObjectCreated(hoFtp))) Begin
Send CreateComObject of hoFtp
End
// Set the various properties to establish the connection.
Set ComHostname Of hoFtp To "ftp.example.com"
Set ComUsername Of hoFtp To "login"
Set ComPassword Of hoFtp To "password"
// If SSL/TLS is required..
// See http://www.cknotes.com/determining-ftp2-connection-settings/
// for more information.
Set ComAuthTls Of hoFtp To True
Set ComPassiveUseHostAddr Of hoFtp To True
// Connect to the FTP server:
Get ComConnectOnly Of hoFtp To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoFtp To sTemp1
Showln sTemp1
Procedure_Return
End
// Authenticate with the FTP server.
Get ComLoginAfterConnectOnly Of hoFtp To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoFtp To sTemp1
Showln sTemp1
Procedure_Return
End
// To get file permissions in UNIX format, disallow MSLD:
Set ComAllowMlsd Of hoFtp To False
// To get file and sub-directory information, simply
// loop from 0 to ftp.GetDirCount() - 1
Move 0 To i
Get ComGetDirCount Of hoFtp To n
If (n < 0) Begin
Get ComLastErrorText Of hoFtp To sTemp1
Showln sTemp1
Procedure_Return
End
// 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 > 0) Begin
Get ComGetPermType Of hoFtp 0 To sTemp1
Showln "The permissions format is: " sTemp1
End
While (i < n)
// Display the permissions and filename
Get ComGetPermissions Of hoFtp i To sTemp1
Get ComGetFilename Of hoFtp i To sTemp2
Showln sTemp1 " " sTemp2
Move (i + 1) To i
Loop
// Assuming MLSD was possible, let's see the file permissions in MLSD format:
Set ComAllowMlsd Of hoFtp To True
// Clear the directory cache so we're forced to re-fetch the directory listing:
Send ComClearDirCache To hoFtp
Get ComGetDirCount Of hoFtp To n
If (n < 0) Begin
Get ComLastErrorText Of hoFtp To sTemp1
Showln sTemp1
Procedure_Return
End
// 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 > 0) Begin
Showln "----"
Get ComGetPermType Of hoFtp 0 To sTemp1
Showln "The permissions format is: " sTemp1
End
Move 0 To i
While (i < n)
// Display the permissions and filename
Get ComGetPermissions Of hoFtp i To sTemp1
Get ComGetFilename Of hoFtp i To sTemp2
Showln sTemp1 " " sTemp2
Move (i + 1) To i
Loop
Get ComDisconnect Of hoFtp To iSuccess
End_Procedure