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.
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CHILKATXMLLib_TLB, CHILKATFTP2Lib_TLB, OleCtrls; ... procedure TForm1.Button1Click(Sender: TObject); var ftp: TChilkatFtp2; success: Integer; strXml: String; xml: CHILKATXMLLib_TLB.IChilkatXml; ascending: Integer; n: Integer; child: CHILKATXMLLib_TLB.IChilkatXml; filename: String; i: Integer; begin ftp := TChilkatFtp2.Create(Self); // Any string unlocks the component for the 1st 30-days. success := ftp.UnlockComponent('Anything for 30-day trial'); if (success <> 1) then begin ShowMessage(ftp.LastErrorText); end; ftp.Hostname := 'ftp.chilkatsoft.com'; ftp.Username := 'myLogin'; ftp.Password := 'myPassword'; // Connect and login to the FTP server. success := ftp.Connect(); if (success <> 1) then begin ShowMessage(ftp.LastErrorText); end; // 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 := ftp.GetXmlDirListing('*.asp'); if (strXml = NULL ) then begin ShowMessage(ftp.LastErrorText); end; // Load the XML directory listing into a Chilkat XML object: xml := TChilkatXml.Create(Self).ControlInterface; xml.LoadXml(strXml); // Sort by a record attribute: ascending := 0; xml.SortRecordsByAttribute('lastModTime','full',ascending); // Download the 5 most recent files: n := xml.NumChildren; if (n > 5) then begin n := 5; end; for i := 0 to n - 1 do begin child := xml.GetChild(i); filename := child.GetChildContent('name'); Memo1.Lines.Add(filename); success := ftp.GetFile(filename,filename); if (success <> 1) then begin ShowMessage(ftp.LastErrorText); break; end; end; // The full sorted XML may be obtained like this: strXml := xml.GetXml(); ftp.Disconnect(); end; |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.