Delphi ActiveX
Delphi ActiveX
FTP Iterate over Files in Directory Matching ListPattern
See more RSA Examples
Uses the ListPattern property to iterate over the files in a directory matching the pattern.Chilkat Delphi ActiveX Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Integer;
ftp: TChilkatFtp2;
n: Integer;
i: Integer;
filename: WideString;
sbLocalPath: TChilkatStringBuilder;
begin
success := 0;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
ftp := TChilkatFtp2.Create(Self);
ftp.Hostname := 'ftp.example.com';
ftp.Username := 'my_login';
ftp.Password := 'my_password';
ftp.Port := 21;
ftp.AuthTls := 1;
success := ftp.Connect();
if (success <> 1) then
begin
Memo1.Lines.Add(ftp.LastErrorText);
Exit;
end;
// Change to the "images" sub-directory located under our FTP account's home directory.
success := ftp.ChangeRemoteDir('images');
if (success <> 1) then
begin
Memo1.Lines.Add(ftp.LastErrorText);
Exit;
end;
ftp.ListPattern := '*.png';
// Fetch the current remote directory contents by calling GetDirCount
n := ftp.GetDirCount();
if (n < 0) then
begin
Memo1.Lines.Add(ftp.LastErrorText);
Exit;
end;
i := 0;
sbLocalPath := TChilkatStringBuilder.Create(Self);
while i < n do
begin
filename := ftp.GetFilename(i);
Memo1.Lines.Add(filename);
// Download this file.
sbLocalPath.SetString('qa_output/');
sbLocalPath.Append(filename);
success := ftp.GetFile(filename,sbLocalPath.GetAsString());
if (success <> 1) then
begin
Memo1.Lines.Add(ftp.LastErrorText);
Exit;
end;
i := i + 1;
end;
end;