Perl Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Perl Examples

Quick Start
Unicode
Byte Array
Bz2
Certificates
CSV
Email
Encryption
FTP
HTML-to-XML
HTTP
IMAP
MHT
MIME
POP3
RSA
S/MIME
Signatures
SMTP
Socket / SSL
Spider
SFTP
SSH Key
SSH
SSH Tunnel
Tar
HTTP Upload
XML
XMP
Zip

More Examples...
String
Email Object
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA

Unreleased...
Bzip2
LZW
Icon

 

 

 

 

 

 

 

Download and Delete Matching Files

Perl example showing how to FTP download files matching a wildcarded file pattern and delete them from the FTP server.

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("www.example-code.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;
}

#  Note: It may be tempting to call MGetFiles(pattern,localDir)
#  followed by a call to DeleteMatching(pattern), however,
#  if new files are uploaded to the FTP server while MGetFiles
#  is running, those files will be deleted by DeleteMatching.

#  Instead, it's best to set the ListPattern and then iterate
#  over each file...

#  Set the ListPattern = "*.xml" to match all XML files.
$ftp->put_ListPattern("*.xml");

#  NumFilesAndDirs contains the number of files and sub-directories
#  matching the ListPattern in the current remote directory.
#  The first time it is accessed after changing ListPattern,
#  or after calling ChangeRemoteDir, a snapshot of the directory
#  listing is fetched and saved in memory. During this loop,
#  the value of NumFilesAndDirs will not change.

$n = $ftp->get_NumFilesAndDirs();
if ($n < 0) {
    print $ftp->lastErrorText() . "\n";
    exit;
}

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

        $fname = $ftp->getFilename($i);
        print $fname . "\r\n";

        #  Download the file into the current working directory.
        $success = $ftp->GetFile($fname,$fname);
        if ($success != 1) {
            print $ftp->lastErrorText() . "\n";
            exit;
        }

        #  Now delete the file.
        $success = $ftp->DeleteRemoteFile($fname);
        if ($success != 1) {
            print $ftp->lastErrorText() . "\n";
            exit;
        }

    }

}

$ftp->Disconnect();
 

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

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