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

 

 

 

 

 

 

 

 

Download and Delete Matching Files

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

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
FreeBSD C++ Libraries
HP-UX C++ Libraries
BlackBerry QNX C++ Libraries
#include <C_CkFtp2.h>

void ChilkatSample(void)
    {
    HCkFtp2 ftp;
    BOOL success;
    long i;
    const char * fname;
    long n;

    ftp = CkFtp2_Create();

    //  Any string unlocks the component for the 1st 30-days.
    success = CkFtp2_UnlockComponent(ftp,"Anything for 30-day trial");
    if (success != TRUE) {
        printf("%s\n",CkFtp2_lastErrorText(ftp));
        return;
    }

    CkFtp2_putHostname(ftp,"www.example-code.com");
    CkFtp2_putUsername(ftp,"****");
    CkFtp2_putPassword(ftp,"****");

    //  Connect and login to the FTP server.
    success = CkFtp2_Connect(ftp);
    if (success != TRUE) {
        printf("%s\n",CkFtp2_lastErrorText(ftp));
        return;
    }

    //  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.
    CkFtp2_putListPattern(ftp,"*.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 = CkFtp2_getNumFilesAndDirs(ftp);
    if (n < 0) {
        printf("%s\n",CkFtp2_lastErrorText(ftp));
        return;
    }

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

            fname = CkFtp2_getFilename(ftp,i);
            printf("%s\n",fname);

            //  Download the file into the current working directory.
            success = CkFtp2_GetFile(ftp,fname,fname);
            if (success != TRUE) {
                printf("%s\n",CkFtp2_lastErrorText(ftp));
                return;
            }

            //  Now delete the file.
            success = CkFtp2_DeleteRemoteFile(ftp,fname);
            if (success != TRUE) {
                printf("%s\n",CkFtp2_lastErrorText(ftp));
                return;
            }

        }

    }

    CkFtp2_Disconnect(ftp);

    CkFtp2_Dispose(ftp);

    }

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

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