Delphi Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Delphi Examples

Bounced Mail
Character Encoding
Digital Certificates
Digital Signatures
Email
FTP
HTML-to-XML
HTTP
IMAP
Encryption
MHT / HTML Email
RSA Encryption
S/MIME
Socket
Spider
String
Tar
Upload
XML
XMP
Zip Compression

More Examples...
Byte Array
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
SSH Key
SSH
SSH Tunnel
SFTP

Unreleased...
Bzip2
LZW
Bz2
Icon

Type Conversion

 

Article: Understanding COM References in Delphi

Download and Delete Matching Files

Delphi example showing how to FTP download files matching a wildcarded file pattern and delete them from the FTP server.

Download Chilkat FTP2 ActiveX

uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls,
    CHILKATFTP2Lib_TLB,
    OleCtrls;

...

procedure TForm1.Button1Click(Sender: TObject);
var
ftp: TChilkatFtp2;
success: Integer;
i: Integer;
fname: String;
n: 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 := 'www.example-code.com';
ftp.Username := '****';
ftp.Password := '****';

//  Connect and login to the FTP server.
success := ftp.Connect();
if (success <> 1) then
  begin
    ShowMessage(ftp.LastErrorText);

  end;

//  Note: It may be tempting to call MGetFiles(pattern,localDir)
//  followed by a call to DeleteMatching(pattern), however,
//  if new files are uploaded to the FTP server while MGetFiles
//  is running, those files will be deleted by DeleteMatching.

//  Instead, it's best to set the ListPattern and then iterate
//  over each file...

//  Set the ListPattern = "*.xml" to match all XML files.
ftp.ListPattern := '*.xml';

//  NumFilesAndDirs contains the number of files and sub-directories
//  matching the ListPattern in the current remote directory.
//  The first time it is accessed after changing ListPattern,
//  or after calling ChangeRemoteDir, a snapshot of the directory
//  listing is fetched and saved in memory. During this loop,
//  the value of NumFilesAndDirs will not change.

n := ftp.NumFilesAndDirs;
if (n < 0) then
  begin
    ShowMessage(ftp.LastErrorText);

  end;

if (n > 0) then
  begin
    for i := 0 to n - 1 do
      begin

        fname := ftp.GetFilename(i);
        Memo1.Lines.Add(fname);

        //  Download the file into the current working directory.
        success := ftp.GetFile(fname,fname);
        if (success <> 1) then
          begin
            ShowMessage(ftp.LastErrorText);

          end;

        //  Now delete the file.
        success := ftp.DeleteRemoteFile(fname);
        if (success <> 1) then
          begin
            ShowMessage(ftp.LastErrorText);

          end;

      end;

  end;

ftp.Disconnect();
end;

 

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

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

Mail Component · .NET Email Component · XML Parser