MFC Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

MFC 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

// Needs #include <CkFtp2.h>
// Needs #include <CkXml.h>

    CkString strOut;

    CkFtp2 ftp;

    bool success;

    //  Any string unlocks the component for the 1st 30-days.
    success = ftp.UnlockComponent("Anything for 30-day trial");
    if (success != true) {
        strOut.append(ftp.lastErrorText());
        strOut.append("\r\n");
        SetDlgItemText(IDC_EDIT1,strOut.getUnicode());
        return;
    }

    ftp.put_Hostname("ftp.chilkatsoft.com");
    ftp.put_Username("myLogin");
    ftp.put_Password("myPassword");

    //  Connect and login to the FTP server.
    success = ftp.Connect();
    if (success != true) {
        strOut.append(ftp.lastErrorText());
        strOut.append("\r\n");
        SetDlgItemText(IDC_EDIT1,strOut.getUnicode());
        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.
    const char * strXml;
    strXml = ftp.getXmlDirListing("*.asp");
    if (strXml == 0 ) {
        strOut.append(ftp.lastErrorText());
        strOut.append("\r\n");
        SetDlgItemText(IDC_EDIT1,strOut.getUnicode());
        return;
    }

    //  Load the XML directory listing into a Chilkat XML object:
    CkXml xml;
    xml.LoadXml(strXml);

    //  Sort by a record attribute:
    bool ascending;
    ascending = false;
    xml.SortRecordsByAttribute("lastModTime","full",ascending);

    //  Download the 5 most recent files:
    long n;
    n = xml.get_NumChildren();
    if (n > 5) {
        n = 5;
    }

    CkXml *child = 0;
    const char * filename;
    long i;
    for (i = 0; i <= n - 1; i++) {

        child = xml.GetChild(i);
        filename = child->getChildContent("name");
        strOut.append(filename);
        strOut.append("\r\n");

        success = ftp.GetFile(filename,filename);
        if (success != true) {
            strOut.append(ftp.lastErrorText());
            strOut.append("\r\n");
            break;
        }

        delete child;
    }

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

    ftp.Disconnect();

    SetDlgItemText(IDC_EDIT1,strOut.getUnicode());

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

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