Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
FTP XML Directory Listing / Download Most Recently Modified FilesDemonstrates 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.
// 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.