Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
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. 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 // 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-2010 Chilkat Software, Inc. All Rights Reserved.