Programming Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

C Examples

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


 

 

 

 

 

 

 

 

FTP XML Directory Listing / Download Most Recently Modified Files

Demonstrates how to retrieve a directory listing in XML format, sort it by last-modified date, and download the 5 most recently modified files.

Note: This example relies upon a new feature added to the GetXmlDirListing method. Namely, the resultant XML includes a "full" attribute with a date/time that is in a sortable format. This feature is available in the pre-release, or in new versions released after 20-May-2008.

Download Chilkat C/C++ Libraries for VC++ 9.0 / Win32

Download Chilkat C/C++ Libraries for VC++ 8.0 / Win32

Download Chilkat C/C++ 64-bit Libraries for VC++ 8.0 / x64

Download Chilkat Visual Studio 2005 C/C++ Libs for Windows Mobile, Pocket PC, SmartPhone, WinCE

Download Chilkat C/C++ Libraries for VC++ 7.0 / Win32

Download Chilkat C/C++ Libraries for VC++ 6.0 / Win32

Download Chilkat C/C++ Libraries for VC++ 6.0, Win 95/98/NT4 Compatible

#include <C_CkFtp2.h>
#include <C_CkXml.h>

void ChilkatSample(void)
    {
    HCkFtp2 ftp;
    BOOL success;
    const char * strXml;
    HCkXml xml;
    BOOL ascending;
    long n;
    HCkXml child;
    const char * filename;
    long i;

    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,"ftp.chilkatsoft.com");
    CkFtp2_putUsername(ftp,"myLogin");
    CkFtp2_putPassword(ftp,"myPassword");

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

    //  Recursively download the listings for the complete
    //  remote directory tree at the current remote dir.
    //  In this case, we haven't called ChangeRemoteDir,
    //  so the current remote dir is the root directory of the
    //  FTP account.

    strXml = CkFtp2_getXmlDirListing(ftp,"*.asp");
    if (strXml == 0 ) {
        printf("%s\n",CkFtp2_lastErrorText(ftp));
        return;
    }

    //  Load the XML directory listing into a Chilkat XML object:
    xml = CkXml_Create();
    CkXml_LoadXml(xml,strXml);

    //  Sort by a record attribute:

    ascending = FALSE;
    CkXml_SortRecordsByAttribute(xml,"lastModTime","full",ascending);

    //  Download the 5 most recent files:

    n = CkXml_getNumChildren(xml);
    if (n > 5) {
        n = 5;
    }

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

        child = CkXml_GetChild(xml,i);
        filename = CkXml_getChildContent(child,"name");
        printf("%s\n",filename);

        success = CkFtp2_GetFile(ftp,filename,filename);
        if (success != TRUE) {
            printf("%s\n",CkFtp2_lastErrorText(ftp));
            break;
        }

        CkXml_Dispose(child);
    }

    //  The full sorted XML may be obtained like this:
    strXml = CkXml_getXml(xml);

    CkFtp2_Disconnect(ftp);

    CkFtp2_Dispose(ftp);
    CkXml_Dispose(xml);

    }

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

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