Sample code for 30+ languages & platforms
Perl

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 Perl Downloads

Perl
use chilkat();

$success = 0;

# 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 != 1) {
    print $ftp->lastErrorText() . "\r\n";
    exit;
}

# The ListPattern property is our directory listing filter.
# The default value is "*", which includes everything.
print $ftp->listPattern() . "\r\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() . "\r\n";
    exit;
}

if ($n > 0) {
    for ($i = 0; $i <= $n - 1; $i++) {

        # Display the filename
        print $ftp->getFilename($i) . "\r\n";

        # Display the file size (in bytes)
        print $ftp->GetSize($i) . "\r\n";

        # Is this a sub-directory?
        if ($ftp->GetIsDirectory($i) == 1) {
            print ".. this is a sub-directory" . "\r\n";
        }

        print "--" . "\r\n";
    }

}

print "-----------------------------------" . "\r\n";

# Only files and directories
# matching the ListPattern are returned.
$ftp->put_ListPattern("*.asp");
$n = $ftp->GetDirCount();
if ($n < 0) {
    print $ftp->lastErrorText() . "\r\n";
    exit;
}

if ($n > 0) {
    for ($i = 0; $i <= $n - 1; $i++) {

        # Display the filename
        print $ftp->getFilename($i) . "\r\n";

        # Display the file size (in bytes)
        print $ftp->GetSize($i) . "\r\n";

        print "--" . "\r\n";
    }

}

$success = $ftp->Disconnect();