Perl Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Perl Examples

Quick Start
Perl Unicode
Perl Byte Array
Perl Certs
Perl Email
Perl Encryption
Perl FTP
HTML-to-XML
Perl HTTP
Perl IMAP
Perl MHT
Perl MIME
Perl RSA
Perl S/MIME
Perl Signatures
Perl Socket
Perl Spider
Perl Tar
Perl Upload
Perl XML
Perl XMP
Perl Zip

More Examples...
String
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor

Unreleased...
Service
PPMD
Deflate
Bzip2
LZW
Bz2
DH Key Exchange
DSA
Icon

 

 

 

 

 

 

 

Directory Existence Check

How to test if a directory exists on an FTP server.

A good way to check to see if a directory already exists is to try to "cd" to that remote directory by calling ChangeRemoteDir. If it succeeds, then the directory exists. If not, then it does not exist. An alternative method is to set the ListPattern = "*" and then iterate over the files/directories, looking for the directory.

Download Chilkat Perl Module

use chilkat;

$ftp = new chilkat::CkFtp2();

#  Any string unlocks the component for the 1st 30-days.
$success = $ftp->UnlockComponent("Anything for 30-day trial");
if ($success != 1) {
    print $ftp->lastErrorText() . "\n";
    exit;
}

$ftp->put_Hostname("ftp.chilkatsoft.com");
$ftp->put_Username("***");
$ftp->put_Password("***");

#  Connect and login to the FTP server.
$success = $ftp->Connect();
if ($success != 1) {
    print $ftp->lastErrorText() . "\n";
    exit;
}

#  Does the "temp" directory exist?

$dirExists = $ftp->ChangeRemoteDir("/temp");
if ($dirExists == 1) {
    print "Yes, the temp directory exists." . "\n";
    #   Yes, it exists. Restore the current remote dir:
    $success = $ftp->ChangeRemoteDir("..");
    if ($success != 1) {
        print $ftp->lastErrorText() . "\n";
        exit;
    }

}

#  Alternatively, you may set the ListPattern = "*" and
#   look for the directory:
$ftp->put_ListPattern("*");

$n = $ftp->get_NumFilesAndDirs();
if ($n < 0) {
    #  Failed to get directory listing based on ListPattern
    print $ftp->lastErrorText() . "\n";
    exit;
}

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

        $isDir = $ftp->GetIsDirectory($i);
        if ($isDir == 1) {

            $fname = $ftp->getFilename($i);
            if ($fname == "temp") {
                print "Found temp directory!" . "\n";
                $foundDir = 1;
                last;
            }

        }

    }

}

if ($foundDir != 1) {
    print "temp directory not found!" . "\n";
}

$ftp->Disconnect();
 

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2007 Chilkat Software, Inc. All Rights Reserved.