Visual FoxPro
Visual FoxPro
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 Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loFtp
LOCAL i
LOCAL n
lnSuccess = 0
* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loFtp = CreateObject('Chilkat.Ftp2')
* Set the various properties to establish the connection.
loFtp.Hostname = "ftp.example.com"
loFtp.Username = "login"
loFtp.Password = "password"
* If SSL/TLS is required..
* See http://www.cknotes.com/determining-ftp2-connection-settings/
* for more information.
loFtp.AuthTls = 1
loFtp.PassiveUseHostAddr = 1
* Connect to the FTP server:
lnSuccess = loFtp.ConnectOnly()
IF (lnSuccess <> 1) THEN
? loFtp.LastErrorText
RELEASE loFtp
CANCEL
ENDIF
* Authenticate with the FTP server.
lnSuccess = loFtp.LoginAfterConnectOnly()
IF (lnSuccess <> 1) THEN
? loFtp.LastErrorText
RELEASE loFtp
CANCEL
ENDIF
* To get file permissions in UNIX format, disallow MSLD:
loFtp.AllowMlsd = 0
* To get file and sub-directory information, simply
* loop from 0 to ftp.GetDirCount() - 1
i = 0
n = loFtp.GetDirCount()
IF (n < 0) THEN
? loFtp.LastErrorText
RELEASE loFtp
CANCEL
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 (n > 0) THEN
? "The permissions format is: " + loFtp.GetPermType(0)
ENDIF
DO WHILE i < n
* Display the permissions and filename
? loFtp.GetPermissions(i) + " " + loFtp.GetFilename(i)
i = i + 1
ENDDO
* Assuming MLSD was possible, let's see the file permissions in MLSD format:
loFtp.AllowMlsd = 1
* Clear the directory cache so we're forced to re-fetch the directory listing:
loFtp.ClearDirCache()
n = loFtp.GetDirCount()
IF (n < 0) THEN
? loFtp.LastErrorText
RELEASE loFtp
CANCEL
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 (n > 0) THEN
? "----"
? "The permissions format is: " + loFtp.GetPermType(0)
ENDIF
i = 0
DO WHILE i < n
* Display the permissions and filename
? loFtp.GetPermissions(i) + " " + loFtp.GetFilename(i)
i = i + 1
ENDDO
lnSuccess = loFtp.Disconnect()
RELEASE loFtp