wpe34.gif (968 bytes) jsFTP

This non-visual component encapsulates complete FTP functionality in a VCL component --using the standard Win 95/NT wininet.dll.

Example:

jsFTP.FileMask := '*.txt';  // only retrieve .txt files
jsFTP.sServer := '208.21.199.7';  // select remote FTP site
jsFTP.sUserID := 'userid';
jsFTP.sPassword := 'password';
jsFTP.Connect;  // connects to site
jsFTP.ChangeDirExact('\bin\usr'); // changes dir on remote system
jsFTP.SendFile('c:\windows\notepad.hlp', 'notepad.hlp');  // send file to remote site
jsFTP.ReceiveFile('c:\incoming\file.txt', 'file.txt');  // receive file from remote site
jsFTP.Disconnect;

 

TjsFTP = class(TComponent)
private
    FStatusMsg : String;
    FsFileMask : String;
    FiContext: Integer;
    FhINet: HInternet;
    FhFTP: HInternet;
    FslCurrFiles: TStringList;
    FsServer: string;
    FsCurrDir: string;
    FsUserID: string;
    FsPassword: string;
    FOnDirChange: TNotifyEvent;
    FOnRefresh : TNotifyEvent;
    FOnConnected : TNotifyEvent;
    FOnReceiveFileFailure : TTransferStatusEvent;
    FOnReceiveFileSuccess : TTransferStatusEvent;
    FOnReceiveFileStatus : TTransferStatusEvent;
    FOnSendFileSuccess: TTransferStatusEvent;
    FOnSendFileFailure: TTransferStatusEvent;
    FOnSendFileStatus : TTransferStatusEvent;
    FOnStatusMsg : TNotifyEvent;
    function GetCurrentDirectory: string;
    function GetUserID : string;
    procedure SetUserID(Value : String);
    function GetFileMask : String;
    procedure SetFileMask(Value : String);
    procedure SetStatusMsg(sStatusMsg : String);
    function GetFileSizeAndDateFromStringList(sRemoteFileName : String;
                                            var iSize : LongInt; var dateFile : TDateTime) : Boolean;
public
    Connected : Boolean;
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure InitializeNewDir;
    function Connect: Boolean;
    procedure Disconnect;
    function FindFiles(sFileMask : String): TStringList;
    function ChangeDirExact(S: string): Boolean;
    function BackOneDir: Boolean;
    function DeleteFile(sRemoteFileName : String) : Boolean;
    function RenameFile(sRemoteOldFileName, sRemoteNewFileName : String) : Boolean;
    function MkDir(sRemoteDirName : String) : Boolean;
    function RmDir(sRemoteDirName : String) : Boolean;
    function SendFile(sLocalFileName, sRemoteFileName : String): Boolean;
    function ReceiveFile(sLocalFileName, sRemoteFileName : String): Boolean;
    property OnRefresh : TNotifyEvent read FOnRefresh write FOnRefresh;
    property StatusMsg : String read FStatusMsg write FStatusMsg;
published
    property FileMask : String read GetFileMask write SetFileMask;
    property sCurrDir: string read FsCurrDir;
    property sUserID: string read GetUserID write SetUserID;
    property sPassword: string read FsPassword write FsPassword;
    property sServer: string read FsServer write FsServer;
    property OnDirChange: TNotifyEvent read FOnDirChange write FOnDirChange;
    property OnConnected : TNotifyEvent read FOnConnected write FOnConnected;
    property OnReceiveFileSuccess : TTransferStatusEvent read FOnReceiveFileSuccess write FOnReceiveFileSuccess;
    property OnReceiveFileFailure : TTransferStatusEvent read FOnReceiveFileFailure write FOnReceiveFileFailure;
    property OnReceiveFileStatus : TTransferStatusEvent read FOnReceiveFileStatus write FOnReceiveFileStatus;
    property OnSendFileSuccess: TTransferStatusEvent read FOnSendFileSuccess write FOnSendFileSuccess;
    property OnSendFileFailure: TTransferStatusEvent read FOnSendFileFailure write FOnSendFileFailure;
    property OnSendFileStatus : TTransferStatusEvent read FOnSendFileStatus write FOnSendFileStatus;
    property OnStatusMsg : TNotifyEvent read FOnStatusMsg write FOnStatusMsg;
end;