Lua
Lua
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 Lua Downloads
local chilkat = require("chilkat")
-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
local ftp = chilkat.Ftp2.new()
-- 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.auth_tls = true
ftp.passive_use_host_addr = true
-- Connect to the FTP server:
local success = ftp:connect_only()
if not success then
print(ftp.last_error_text)
return
end
-- Authenticate with the FTP server.
success = ftp:login_after_connect_only()
if not success then
print(ftp.last_error_text)
return
end
-- To get file permissions in UNIX format, disallow MSLD:
ftp.allow_mlsd = false
-- To get file and sub-directory information, simply
-- loop from 0 to ftp.GetDirCount() - 1
local i = 0
local n = ftp:get_dir_count()
if n < 0 then
print(ftp.last_error_text)
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 then
print("The permissions format is: " .. ftp:get_perm_type(0))
end
while i < n do
-- Display the permissions and filename
print(ftp:get_permissions(i) .. " " .. ftp:get_filename(i))
i = i + 1
end
-- Assuming MLSD was possible, let's see the file permissions in MLSD format:
ftp.allow_mlsd = true
-- Clear the directory cache so we're forced to re-fetch the directory listing:
ftp:clear_dir_cache()
n = ftp:get_dir_count()
if n < 0 then
print(ftp.last_error_text)
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 then
print("----")
print("The permissions format is: " .. ftp:get_perm_type(0))
end
i = 0
while i < n do
-- Display the permissions and filename
print(ftp:get_permissions(i) .. " " .. ftp:get_filename(i))
i = i + 1
end
success = ftp:disconnect()