Programming Examples

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

C Examples

Bounced Mail
Bz2
Certificates/Keys
Charset
CSV
DKIM / DomainKey
Diffie-Hellman
DSA
Email Object
Encryption
FileAccess
FTP
HTML Conversion
HTTP
IMAP
MHT / HTML Email
MIME
NTLM
POP3
RSA
SMTP
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
Tar
Upload
XML
Zip
Amazon S3

 

 

 

 

 

 

 

 

SFTP Read Directory Listing

Demonstrates how to download a directory listing and iterate over the files.

Downloads:

MS Windows Visual C/C++ Libraries
Linux/CentOS C/C++ Libraries
MAC OS X C/C++ Libraries
Solaris C/C++ Libraries
C++ Builder Libraries
#include <C_CkSFtp.h>
#include <C_CkSFtpDir.h>
#include <C_CkSFtpFile.h>

void ChilkatSample(void)
    {
    HCkSFtp sftp;
    BOOL success;
    long port;
    const char * hostname;
    const char * handle;
    HCkSFtpDir dirListing;
    long i;
    long n;
    HCkSFtpFile fileObj;

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

    sftp = CkSFtp_Create();

    //  Any string automatically begins a fully-functional 30-day trial.

    success = CkSFtp_UnlockComponent(sftp,"Anything for 30-day trial");
    if (success != TRUE) {
        printf("%s\n",CkSFtp_lastErrorText(sftp));
        return;
    }

    //  Set some timeouts, in milliseconds:
    CkSFtp_putConnectTimeoutMs(sftp,5000);
    CkSFtp_putIdleTimeoutMs(sftp,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 = CkSFtp_Connect(sftp,hostname,port);
    if (success != TRUE) {
        printf("%s\n",CkSFtp_lastErrorText(sftp));
        return;
    }

    //  Authenticate with the SSH server.  Chilkat SFTP supports
    //  both password-based authenication as well as public-key
    //  authentication.  This example uses password authenication.
    success = CkSFtp_AuthenticatePw(sftp,"myLogin","myPassword");
    if (success != TRUE) {
        printf("%s\n",CkSFtp_lastErrorText(sftp));
        return;
    }

    //  After authenticating, the SFTP subsystem must be initialized:
    success = CkSFtp_InitializeSftp(sftp);
    if (success != TRUE) {
        printf("%s\n",CkSFtp_lastErrorText(sftp));
        return;
    }

    //  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.

    handle = CkSFtp_openDir(sftp,".");
    if (handle == 0 ) {
        printf("%s\n",CkSFtp_lastErrorText(sftp));
        return;
    }

    //  Download the directory listing:

    dirListing = CkSFtp_ReadDir(sftp,handle);
    if (dirListing == 0 ) {
        printf("%s\n",CkSFtp_lastErrorText(sftp));
        return;
    }

    //  Iterate over the files.

    n = CkSFtpDir_getNumFilesAndDirs(dirListing);
    if (n == 0) {
        printf("No entries found in this directory.\n");
    }
    else {
        for (i = 0; i <= n - 1; i++) {

            fileObj = CkSFtpDir_GetFileObject(dirListing,i);

            printf("%s\n",CkSFtpFile_filename(fileObj));
            printf("%s\n",CkSFtpFile_fileType(fileObj));
            printf("Size in bytes: %d\n",CkSFtpFile_getSize32(fileObj));
            printf("----\n");

            CkSFtpFile_Dispose(fileObj);
        }

    }

    CkSFtpDir_Dispose(dirListing);

    //  Close the directory
    success = CkSFtp_CloseHandle(sftp,handle);
    if (success != TRUE) {
        printf("%s\n",CkSFtp_lastErrorText(sftp));
        return;
    }

    printf("Success.\n");

    CkSFtp_Dispose(sftp);

    }

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

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