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;