Sample code for 30+ languages & platforms
Delphi DLL

Upload Directory Tree

See more FTP Examples

Upload an entire directory tree from the local filesystem to an FTP server.

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Ftp2;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
ftp: HCkFtp2;

begin
success := False;

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

ftp := CkFtp2_Create();

CkFtp2_putKeepSessionLog(ftp,True);

CkFtp2_putHostname(ftp,'ftp.example.com');
CkFtp2_putUsername(ftp,'login');
CkFtp2_putPassword(ftp,'password');

// Connect and login to the FTP server.
success := CkFtp2_Connect(ftp);
if (success <> True) then
  begin
    Memo1.Lines.Add(CkFtp2__lastErrorText(ftp));
    Exit;
  end;

// Set the current remote directory to the root where the
// directory tree will be uploaded.
success := CkFtp2_ChangeRemoteDir(ftp,'/something');
if (success <> True) then
  begin
    Memo1.Lines.Add(CkFtp2__lastErrorText(ftp));
    Exit;
  end;

// Upload the entire directory tree rooted at c:/temp/something
success := CkFtp2_PutTree(ftp,'c:/temp/something');
if (success <> True) then
  begin
    Memo1.Lines.Add(CkFtp2__lastErrorText(ftp));
    Exit;
  end;

success := CkFtp2_Disconnect(ftp);

Memo1.Lines.Add(CkFtp2__sessionLog(ftp));

CkFtp2_Dispose(ftp);

end;