Sample code for 30+ languages & platforms
Ruby

Get FTP Directory Listing Information

See more FTP Examples

_LANGUAGE_ example showing how to get information about files and subdirectories in the current remote FTP directory.

Chilkat Ruby Downloads

Ruby
require 'chilkat'

success = false

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

ftp = Chilkat::CkFtp2.new()

ftp.put_Hostname("ftp.example.com")
ftp.put_Username("login")
ftp.put_Password("password")

# Connect and login to the FTP server.
success = ftp.Connect()
if (success != true)
    print ftp.lastErrorText() + "\n";
    exit
end

# The ListPattern property is our directory listing filter.
# The default value is "*", which includes everything.
print ftp.listPattern() + "\n";

# To get file and sub-directory information, simply
# loop from 0 to ftp.GetDirCount() - 1

n = ftp.GetDirCount()
if (n < 0)
    print ftp.lastErrorText() + "\n";
    exit
end

if (n > 0)
    for i in 0 .. n - 1

        # Display the filename
        print ftp.getFilename(i) + "\n";

        # Display the file size (in bytes)
        print ftp.GetSize(i).to_s() + "\n";

        # Is this a sub-directory?
        if (ftp.GetIsDirectory(i) == true)
            print ".. this is a sub-directory" + "\n";
        end

        print "--" + "\n";
    end
end

print "-----------------------------------" + "\n";

# Only files and directories
# matching the ListPattern are returned.
ftp.put_ListPattern("*.asp")
n = ftp.GetDirCount()
if (n < 0)
    print ftp.lastErrorText() + "\n";
    exit
end

if (n > 0)
    for i in 0 .. n - 1

        # Display the filename
        print ftp.getFilename(i) + "\n";

        # Display the file size (in bytes)
        print ftp.GetSize(i).to_s() + "\n";

        print "--" + "\n";
    end
end

success = ftp.Disconnect()