Perl Examples

ChilkatHOMEAndroid™ASPVisual BasicVB.NETC#iOS (IPhone)Objective-CC++CMFCDelphiFoxProJavaPerl
PHP ExtensionPHP ActiveXPythonPowerShellRubySQL ServerVBScript

Perl Examples

Quick Start
Unicode
Byte Array
Bz2
Certificates
CSV
Email
Encryption
FTP
HTML Conversion
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
Amazon S3
Email Object
DKIM / DomainKey
NTLM
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
Bzip2
LZW

 

 

 

 

 

 

 

SFTP Download Files Matching a Pattern

Demonstrates how to download the files in a remote SFTP directory matching a file pattern. The example opens a directory, iterates over the files, and downloads each file matching a file pattern, such as "*.xml".

 Chilkat Perl Module Downloads for Windows, Linux, and MAC OS X

use chilkat();

#  Important: It is helpful to send the contents of the
#  sftp.LastErrorText property when requesting support.

$sftp = new chilkat::CkSFtp();

#  Any string automatically begins a fully-functional 30-day trial.
$success = $sftp->UnlockComponent("Anything for 30-day trial");
if ($success != 1) {
    print $sftp->lastErrorText() . "\n";
    exit;
}

#  Set some timeouts, in milliseconds:
$sftp->put_ConnectTimeoutMs(5000);
$sftp->put_IdleTimeoutMs(10000);

#  Connect to the SSH server.
#  The standard SSH port = 22
#  The hostname may be a hostname or IP address.

$hostname = "www.my-sftp-server.com";
$port = 22;
$success = $sftp->Connect($hostname,$port);
if ($success != 1) {
    print $sftp->lastErrorText() . "\n";
    exit;
}

#  Authenticate with the SSH server.  Chilkat SFTP supports
#  both password-based authenication as well as public-key
#  authentication.  This example uses password authenication.
$success = $sftp->AuthenticatePw("myLogin","myPassword");
if ($success != 1) {
    print $sftp->lastErrorText() . "\n";
    exit;
}

#  After authenticating, the SFTP subsystem must be initialized:
$success = $sftp->InitializeSftp();
if ($success != 1) {
    print $sftp->lastErrorText() . "\n";
    exit;
}

#  Open a directory on the server...
#  Paths starting with a slash are "absolute", and are relative
#  to the root of the file system. Names starting with any other
#  character are relative to the user's default directory (home directory).
#  A path component of ".." refers to the parent directory,
#  and "." refers to the current directory.

$dirPath = "abc123";
$handle = $sftp->openDir($dirPath);
if ($handle eq null ) {
    print $sftp->lastErrorText() . "\n";
    exit;
}

#  Download the directory listing:

# dirListing is a CkSFtpDir
$dirListing = $sftp->ReadDir($handle);
if ($dirListing eq null ) {
    print $sftp->lastErrorText() . "\n";
    exit;
}

#  Iterate over the files.

$n = $dirListing->get_NumFilesAndDirs();
if ($n == 0) {
    print "No entries found in this directory." . "\r\n";
}
else {
    for ($i = 0; $i <= $n - 1; $i++) {

        # fileObj is a CkSFtpFile
        $fileObj = $dirListing->GetFileObject($i);

        print $fileObj->filename() . "\r\n";

        #  Does this filename match the desired pattern?
        #  Write code here to determine if it's a match or not.

        #  Assuming it's a match, you would download the file
        #  like this:

        $remoteFilePath = $dirPath . "/";
        $remoteFilePath = $remoteFilePath . $fileObj->filename();
        $localFilePath = $fileObj->filename();
        $success = $sftp->DownloadFileByName($remoteFilePath,$localFilePath);
        if ($success != 1) {
            print $sftp->lastErrorText() . "\n";
            exit;
        }

    }

}

#  Close the directory
$success = $sftp->CloseHandle($handle);
if ($success != 1) {
    print $sftp->lastErrorText() . "\n";
    exit;
}

print "Success." . "\n";
 

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