100分求FTP客户端源码 100分求FTP客户端源码,急用! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DELPHI的DEMO里面就有,无论是用INDY还是用FASTNET,有时间就翻翻吧///////////////////////////////////////////////////////////////////////////// //// Copyright ?1997-1998, NetMasters, L.L.C //// - All rights reserved worldwide. - //// Portions may be Copyright ?Inprise. //// //// FTP Demo Unit 1 : (UNIT1.PAS) //// //// DESCRIPTION: //// //// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY //// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE //// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR //// PURPOSE. //// ///////////////////////////////////////////////////////////////////////////////// Revision History//// /////////////////////////////////////////////////////////////////////////////unit FTPDem;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Forms, Dialogs, ComCtrls, StdCtrls, Psock, NMFtp, Controls;type TForm1 = class(TForm) PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; TabSheet3: TTabSheet; TabSheet4: TTabSheet; HostTxt: TEdit; PortTxt: TEdit; Label1: TLabel; Label2: TLabel; Button1: TButton; Button2: TButton; StatusBar1: TStatusBar; Memo1: TMemo; Button3: TButton; Button4: TButton; NMFTP1: TNMFTP; UserTxt: TEdit; Label3: TLabel; PassTxt: TEdit; Label4: TLabel; DirTxt: TEdit; Label5: TLabel; Label6: TLabel; Button5: TButton; RemoteTxt: TEdit; Label7: TLabel; LocalTxt: TEdit; Label8: TLabel; Button6: TButton; Button7: TButton; TabSheet6: TTabSheet; Edit3: TEdit; Label11: TLabel; Label12: TLabel; Edit4: TEdit; Button10: TButton; Button11: TButton; Button8: TButton; Button9: TButton; Button12: TButton; Button13: TButton; PosTxt: TEdit; Label9: TLabel; TabSheet5: TTabSheet; Edit1: TEdit; Label10: TLabel; Edit2: TEdit; Label13: TLabel; Button14: TButton; Button15: TButton; TabSheet7: TTabSheet; Edit5: TEdit; Label14: TLabel; Button16: TButton; TabSheet8: TTabSheet; Button17: TButton; Label15: TLabel; CheckBox1: TCheckBox; Edit6: TEdit; Edit7: TEdit; Label16: TLabel; Label17: TLabel; TabSheet9: TTabSheet; Edit8: TEdit; Edit9: TEdit; Label18: TLabel; Label19: TLabel; Button18: TButton; procedure NMFTP1Success(Trans_Type: TCmdType); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure NMFTP1ListItem(Listing: String); procedure TabSheet3MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Button5Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure NMFTP1PacketRecvd(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button10Click(Sender: TObject); procedure Button11Click(Sender: TObject); procedure Button12Click(Sender: TObject); procedure Button13Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button14Click(Sender: TObject); procedure Button15Click(Sender: TObject); procedure Button16Click(Sender: TObject); procedure Button17Click(Sender: TObject); procedure NMFTP1Connect(Sender: TObject); procedure NMFTP1Failure(var handled: Boolean; Trans_Type: TCmdType); procedure NMFTP1TransactionStop(Sender: TObject); procedure NMFTP1HostResolved(Sender: TComponent); procedure NMFTP1InvalidHost(var handled: Boolean); procedure NMFTP1PacketSent(Sender: TObject); procedure NMFTP1TransactionStart(Sender: TObject); procedure NMFTP1Disconnect(Sender: TObject); procedure NMFTP1Error(Sender: TComponent; Errno: Word; Errmsg: String); procedure NMFTP1Status(Sender: TComponent; Status: String); procedure Button18Click(Sender: TObject); procedure NMFTP1UnSupportedFunction(Trans_Type: TCmdType); procedure NMFTP1ConnectionFailed(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.DFM}var Q: Integer; procedure TForm1.NMFTP1Success(Trans_Type: TCmdType);begin Case Trans_Type of cmdChangeDir: StatusBar1.SimpleText := 'ChangeDir success'; cmdMakeDir: StatusBar1.SimpleText := 'MakeDir success'; cmdDelete: StatusBar1.SimpleText := 'Delete success'; cmdRemoveDir: StatusBar1.SimpleText := 'RemoveDir success'; cmdList: StatusBar1.SimpleText := 'List success'; cmdRename: StatusBar1.SimpleText := 'Rename success'; cmdUpRestore: StatusBar1.SimpleText := 'UploadRestore success'; cmdDownRestore: StatusBar1.SimpleText := 'DownloadRestore success'; cmdDownload: StatusBar1.SimpleText := 'Download success'; cmdUpload: StatusBar1.SimpleText := 'Upload success'; cmdAppend: StatusBar1.SimpleText := 'UploadAppend success'; cmdReInit: StatusBar1.SimpleText := 'ReInit success'; cmdAllocate: StatusBar1.SimpleText := 'Allocate success'; cmdNList: StatusBar1.SimpleText := 'NList success'; cmdDoCommand: StatusBar1.SimpleText := 'DoCommand success'; end;end;procedure TForm1.Button1Click(Sender: TObject);begin If CheckBox1.Checked then Begin NMFTP1.Proxy := Edit6.Text; NMFTP1.ProxyPort := StrToInt(Edit7.Text); End; NMFTP1.Host := HostTxt.Text; NMFTP1.Port := StrToInt(PortTxt.Text); NMFTP1.Timeout := 5000; NMFTP1.UserID := UserTxt.Text; NMFTP1.Password := PassTxt.Text; try NMFTP1.Connect; except On E:Exception do writeln(E.message); endend;procedure TForm1.Button2Click(Sender: TObject);begin NMFTP1.Disconnect;end;procedure TForm1.Button3Click(Sender: TObject);begin Q := 1; try NMFTP1.Nlist; except end;end;procedure TForm1.Button4Click(Sender: TObject);begin Q := 1; try NMFTP1.List; except end;end;procedure TForm1.NMFTP1ListItem(Listing: String);begin Memo1.Lines.Add(IntToStr(Q)+': '+Listing); Inc(Q);end;procedure TForm1.TabSheet3MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);begin Label5.Caption := 'Current Dir: ';end;procedure TForm1.Button5Click(Sender: TObject);begin NMFTP1.ChangeDir(DirTxt.Text);end;procedure TForm1.Button8Click(Sender: TObject);begin NMFTP1.DownloadRestore(RemoteTxt.Text, LocalTxt.Text);end;procedure TForm1.NMFTP1PacketRecvd(Sender: TObject);begin StatusBar1.SimpleText := IntToStr(NMFTP1.BytesRecvd)+' of '+IntToStr(NMFTP1.BytesTotal);end;procedure TForm1.Button7Click(Sender: TObject);begin NMFTP1.Abort;end;procedure TForm1.Button10Click(Sender: TObject);begin try NMFTP1.Upload(Edit3.Text, Edit4.Text); except end;end;procedure TForm1.Button11Click(Sender: TObject);begin try NMFTP1.UploadAppend(Edit3.Text, Edit4.Text); except end;end;procedure TForm1.Button12Click(Sender: TObject);begin try NMFTP1.UploadUnique(Edit3.Text); except end;end;procedure TForm1.Button13Click(Sender: TObject);begin try NMFTP1.UploadRestore(Edit3.Text,Edit4.Text,StrToInt(PosTxt.Text)); except end;end;procedure TForm1.Button6Click(Sender: TObject); begin try NMFTP1.Download(RemoteTxt.Text, LocalTxt.Text); except end;end;procedure TForm1.Button14Click(Sender: TObject);begin NMFTP1.MakeDirectory(Edit1.Text);end;procedure TForm1.Button15Click(Sender: TObject);begin NMFTP1.RemoveDir(Edit2.Text);end;procedure TForm1.Button16Click(Sender: TObject);begin NMFTP1.Delete(Edit5.Text);end;procedure TForm1.Button17Click(Sender: TObject);begin NMFTP1.Reinitialize; PageControl1.ActivePage := TabSheet2;end;procedure TForm1.NMFTP1Connect(Sender: TObject);begin StatusBar1.SimpleText := 'Connected';end;procedure TForm1.NMFTP1Failure(var handled: Boolean; Trans_Type: TCmdType);begin Case Trans_Type of cmdChangeDir: StatusBar1.SimpleText := 'ChangeDir failure'; cmdMakeDir: StatusBar1.SimpleText := 'MakeDir failure'; cmdDelete: StatusBar1.SimpleText := 'Delete failure'; cmdRemoveDir: StatusBar1.SimpleText := 'RemoveDir failure'; cmdList: StatusBar1.SimpleText := 'List failure'; cmdRename: StatusBar1.SimpleText := 'Rename failure'; cmdUpRestore: StatusBar1.SimpleText := 'UploadRestore failure'; cmdDownRestore: StatusBar1.SimpleText := 'DownloadRestore failure'; cmdDownload: StatusBar1.SimpleText := 'Download failure'; cmdUpload: StatusBar1.SimpleText := 'Upload failure'; cmdAppend: StatusBar1.SimpleText := 'UploadAppend failure'; cmdReInit: StatusBar1.SimpleText := 'ReInit failure'; cmdAllocate: StatusBar1.SimpleText := 'Allocate failure'; cmdNList: StatusBar1.SimpleText := 'NList failure'; cmdDoCommand: StatusBar1.SimpleText := 'DoCommand failure'; end;end;procedure TForm1.NMFTP1TransactionStop(Sender: TObject);begin StatusBar1.SimpleText := 'Data Transfer Complete';end;procedure TForm1.NMFTP1HostResolved(Sender: TComponent);begin StatusBar1.SimpleText := 'Host resolved';end;procedure TForm1.NMFTP1InvalidHost(var handled: Boolean);begin ShowMessage('Invalid Host');end;procedure TForm1.NMFTP1PacketSent(Sender: TObject);begin StatusBar1.SimpleText := IntToStr(NMFTP1.BytesSent)+' of '+IntToStr(NMFTP1.BytesTotal);end;procedure TForm1.NMFTP1TransactionStart(Sender: TObject);begin StatusBar1.SimpleText := 'Beginning Data Transfer';end;procedure TForm1.NMFTP1Disconnect(Sender: TObject);begin If StatusBar1 <> nil then StatusBar1.SimpleText := 'Disconnected';end;procedure TForm1.NMFTP1Error(Sender: TComponent; Errno: Word; Errmsg: String);begin ShowMessage('Error '+IntToStr(Errno)+': '+Errmsg);end;procedure TForm1.NMFTP1Status(Sender: TComponent; Status: String);begin// If StatusBar1 <> nil then// StatusBar1.SimpleText := status;end;procedure TForm1.Button18Click(Sender: TObject);begin NMFTP1.Rename(Edit8.Text,Edit9.Text);end;procedure TForm1.NMFTP1UnSupportedFunction(Trans_Type: TCmdType);begin Case Trans_Type of cmdChangeDir: ShowMessage('ChangeDir unsupported'); cmdMakeDir: ShowMessage('MakeDir unsupported'); cmdDelete: ShowMessage('Delete unsupported'); cmdRemoveDir: ShowMessage('RemoveDir unsupported'); cmdList: ShowMessage('List unsupported'); cmdRename: ShowMessage('Rename unsupported'); cmdUpRestore: ShowMessage('UploadRestore unsupported'); cmdDownRestore: ShowMessage('DownloadRestore unsupported'); cmdDownload: ShowMessage('Download unsupported'); cmdUpload: ShowMessage('Upload unsupported'); cmdAppend: ShowMessage('UploadAppend unsupported'); cmdReInit: ShowMessage('ReInit unsupported'); cmdAllocate: ShowMessage('Allocate unsupported'); cmdNList: ShowMessage('NList unsupported'); cmdDoCommand: ShowMessage('DoCommand unsupported'); end;end;procedure TForm1.NMFTP1ConnectionFailed(Sender: TObject);begin ShowMessage('Connection Failed');end;procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);begin NMFTP1.Abort;end;end. IndyProject.org站点可以下载Indy版的但功能极其简单的想好就要给钱的我的LYFTPhttp://ly.activepower.net/lysoft/Order.htm 呵呵其实这个用Serv-U做服务器外加Serv-U的DLL插件的方法是最好的不管你用什么FTP客户端都和实现当然定制自己的FTP客户端软件都是可以的http://lysoft.7u7.netTel 020-61286264 CTO Mr Liu delphi 的demo 目录里有 demo\indy\ftpdemo To ly_liuyang(Liu Yang) :现服务器是Serv-U,但服务器是别人的,我们用的空间是虚拟主机不知您指的Serv-U的DLL插件是安装在哪,服务器端吗? 关于setcomplete的严重问题 关于vox文件播放的问题?????????????????????????????????????? 求delphi入门书籍 程序运行后,如何判断是否有键盘按下? 在后台SQL中怎样才能把DATETIME转为DATE?? 用套接字发邮件的疑问 救命啊,为什么同一窗体同样的分辨率在WIN98中和WIN2000中大小不一啊 关于如何执行(*.doc,*.xls等)文件的求助??? 怎么用Delphi实现五子棋或象棋游戏? 求教DELPHI的数据库应用开发高手 如何修改系统默认路径? 如何检查 汉字 与 拼音 是否匹配!!
// //
// Copyright ?1997-1998, NetMasters, L.L.C //
// - All rights reserved worldwide. - //
// Portions may be Copyright ?Inprise. //
// //
// FTP Demo Unit 1 : (UNIT1.PAS) //
// //
// DESCRIPTION: //
// //
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY //
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE //
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR //
// PURPOSE. //
// //
///////////////////////////////////////////////////////////////////////////
//
// Revision History
//
// //
///////////////////////////////////////////////////////////////////////////
unit FTPDem;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Forms, Dialogs,
ComCtrls, StdCtrls, Psock, NMFtp, Controls;type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
HostTxt: TEdit;
PortTxt: TEdit;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
StatusBar1: TStatusBar;
Memo1: TMemo;
Button3: TButton;
Button4: TButton;
NMFTP1: TNMFTP;
UserTxt: TEdit;
Label3: TLabel;
PassTxt: TEdit;
Label4: TLabel;
DirTxt: TEdit;
Label5: TLabel;
Label6: TLabel;
Button5: TButton;
RemoteTxt: TEdit;
Label7: TLabel;
LocalTxt: TEdit;
Label8: TLabel;
Button6: TButton;
Button7: TButton;
TabSheet6: TTabSheet;
Edit3: TEdit;
Label11: TLabel;
Label12: TLabel;
Edit4: TEdit;
Button10: TButton;
Button11: TButton;
Button8: TButton;
Button9: TButton;
Button12: TButton;
Button13: TButton;
PosTxt: TEdit;
Label9: TLabel;
TabSheet5: TTabSheet;
Edit1: TEdit;
Label10: TLabel;
Edit2: TEdit;
Label13: TLabel;
Button14: TButton;
Button15: TButton;
TabSheet7: TTabSheet;
Edit5: TEdit;
Label14: TLabel;
Button16: TButton;
TabSheet8: TTabSheet;
Button17: TButton;
Label15: TLabel;
CheckBox1: TCheckBox;
Edit6: TEdit;
Edit7: TEdit;
Label16: TLabel;
Label17: TLabel;
TabSheet9: TTabSheet;
Edit8: TEdit;
Edit9: TEdit;
Label18: TLabel;
Label19: TLabel;
Button18: TButton;
procedure NMFTP1Success(Trans_Type: TCmdType);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure NMFTP1ListItem(Listing: String);
procedure TabSheet3MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Button5Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure NMFTP1PacketRecvd(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure NMFTP1Connect(Sender: TObject);
procedure NMFTP1Failure(var handled: Boolean; Trans_Type: TCmdType);
procedure NMFTP1TransactionStop(Sender: TObject);
procedure NMFTP1HostResolved(Sender: TComponent);
procedure NMFTP1InvalidHost(var handled: Boolean);
procedure NMFTP1PacketSent(Sender: TObject);
procedure NMFTP1TransactionStart(Sender: TObject);
procedure NMFTP1Disconnect(Sender: TObject);
procedure NMFTP1Error(Sender: TComponent; Errno: Word; Errmsg: String);
procedure NMFTP1Status(Sender: TComponent; Status: String);
procedure Button18Click(Sender: TObject);
procedure NMFTP1UnSupportedFunction(Trans_Type: TCmdType);
procedure NMFTP1ConnectionFailed(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}var
Q: Integer;
begin
Case Trans_Type of
cmdChangeDir: StatusBar1.SimpleText := 'ChangeDir success';
cmdMakeDir: StatusBar1.SimpleText := 'MakeDir success';
cmdDelete: StatusBar1.SimpleText := 'Delete success';
cmdRemoveDir: StatusBar1.SimpleText := 'RemoveDir success';
cmdList: StatusBar1.SimpleText := 'List success';
cmdRename: StatusBar1.SimpleText := 'Rename success';
cmdUpRestore: StatusBar1.SimpleText := 'UploadRestore success';
cmdDownRestore: StatusBar1.SimpleText := 'DownloadRestore success';
cmdDownload: StatusBar1.SimpleText := 'Download success';
cmdUpload: StatusBar1.SimpleText := 'Upload success';
cmdAppend: StatusBar1.SimpleText := 'UploadAppend success';
cmdReInit: StatusBar1.SimpleText := 'ReInit success';
cmdAllocate: StatusBar1.SimpleText := 'Allocate success';
cmdNList: StatusBar1.SimpleText := 'NList success';
cmdDoCommand: StatusBar1.SimpleText := 'DoCommand success';
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
If CheckBox1.Checked then
Begin
NMFTP1.Proxy := Edit6.Text;
NMFTP1.ProxyPort := StrToInt(Edit7.Text);
End;
NMFTP1.Host := HostTxt.Text;
NMFTP1.Port := StrToInt(PortTxt.Text);
NMFTP1.Timeout := 5000;
NMFTP1.UserID := UserTxt.Text;
NMFTP1.Password := PassTxt.Text;
try
NMFTP1.Connect;
except
On E:Exception do
writeln(E.message);
end
end;procedure TForm1.Button2Click(Sender: TObject);
begin
NMFTP1.Disconnect;
end;procedure TForm1.Button3Click(Sender: TObject);
begin
Q := 1;
try NMFTP1.Nlist; except end;
end;procedure TForm1.Button4Click(Sender: TObject);
begin
Q := 1;
try NMFTP1.List; except end;
end;procedure TForm1.NMFTP1ListItem(Listing: String);
begin
Memo1.Lines.Add(IntToStr(Q)+': '+Listing);
Inc(Q);
end;procedure TForm1.TabSheet3MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Label5.Caption := 'Current Dir: ';
end;procedure TForm1.Button5Click(Sender: TObject);
begin
NMFTP1.ChangeDir(DirTxt.Text);
end;procedure TForm1.Button8Click(Sender: TObject);
begin
NMFTP1.DownloadRestore(RemoteTxt.Text, LocalTxt.Text);
end;procedure TForm1.NMFTP1PacketRecvd(Sender: TObject);
begin
StatusBar1.SimpleText := IntToStr(NMFTP1.BytesRecvd)+' of '+IntToStr(NMFTP1.BytesTotal);
end;procedure TForm1.Button7Click(Sender: TObject);
begin
NMFTP1.Abort;
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
try NMFTP1.Upload(Edit3.Text, Edit4.Text); except end;
end;
procedure TForm1.Button11Click(Sender: TObject);
begin
try NMFTP1.UploadAppend(Edit3.Text, Edit4.Text); except end;
end;procedure TForm1.Button12Click(Sender: TObject);
begin
try NMFTP1.UploadUnique(Edit3.Text); except end;
end;procedure TForm1.Button13Click(Sender: TObject);
begin
try NMFTP1.UploadRestore(Edit3.Text,Edit4.Text,StrToInt(PosTxt.Text)); except end;
end;procedure TForm1.Button6Click(Sender: TObject);
begin
try NMFTP1.Download(RemoteTxt.Text, LocalTxt.Text); except end;
end;procedure TForm1.Button14Click(Sender: TObject);
begin
NMFTP1.MakeDirectory(Edit1.Text);
end;procedure TForm1.Button15Click(Sender: TObject);
begin
NMFTP1.RemoveDir(Edit2.Text);
end;procedure TForm1.Button16Click(Sender: TObject);
begin
NMFTP1.Delete(Edit5.Text);
end;procedure TForm1.Button17Click(Sender: TObject);
begin
NMFTP1.Reinitialize;
PageControl1.ActivePage := TabSheet2;
end;procedure TForm1.NMFTP1Connect(Sender: TObject);
begin
StatusBar1.SimpleText := 'Connected';
end;procedure TForm1.NMFTP1Failure(var handled: Boolean; Trans_Type: TCmdType);
begin
Case Trans_Type of
cmdChangeDir: StatusBar1.SimpleText := 'ChangeDir failure';
cmdMakeDir: StatusBar1.SimpleText := 'MakeDir failure';
cmdDelete: StatusBar1.SimpleText := 'Delete failure';
cmdRemoveDir: StatusBar1.SimpleText := 'RemoveDir failure';
cmdList: StatusBar1.SimpleText := 'List failure';
cmdRename: StatusBar1.SimpleText := 'Rename failure';
cmdUpRestore: StatusBar1.SimpleText := 'UploadRestore failure';
cmdDownRestore: StatusBar1.SimpleText := 'DownloadRestore failure';
cmdDownload: StatusBar1.SimpleText := 'Download failure';
cmdUpload: StatusBar1.SimpleText := 'Upload failure';
cmdAppend: StatusBar1.SimpleText := 'UploadAppend failure';
cmdReInit: StatusBar1.SimpleText := 'ReInit failure';
cmdAllocate: StatusBar1.SimpleText := 'Allocate failure';
cmdNList: StatusBar1.SimpleText := 'NList failure';
cmdDoCommand: StatusBar1.SimpleText := 'DoCommand failure';
end;
end;procedure TForm1.NMFTP1TransactionStop(Sender: TObject);
begin
StatusBar1.SimpleText := 'Data Transfer Complete';
end;procedure TForm1.NMFTP1HostResolved(Sender: TComponent);
begin
StatusBar1.SimpleText := 'Host resolved';
end;procedure TForm1.NMFTP1InvalidHost(var handled: Boolean);
begin
ShowMessage('Invalid Host');
end;procedure TForm1.NMFTP1PacketSent(Sender: TObject);
begin
StatusBar1.SimpleText := IntToStr(NMFTP1.BytesSent)+' of '+IntToStr(NMFTP1.BytesTotal);
end;procedure TForm1.NMFTP1TransactionStart(Sender: TObject);
begin
StatusBar1.SimpleText := 'Beginning Data Transfer';
end;procedure TForm1.NMFTP1Disconnect(Sender: TObject);
begin
If StatusBar1 <> nil then
StatusBar1.SimpleText := 'Disconnected';
end;procedure TForm1.NMFTP1Error(Sender: TComponent; Errno: Word;
Errmsg: String);
begin
ShowMessage('Error '+IntToStr(Errno)+': '+Errmsg);
end;procedure TForm1.NMFTP1Status(Sender: TComponent; Status: String);
begin
// If StatusBar1 <> nil then
// StatusBar1.SimpleText := status;
end;procedure TForm1.Button18Click(Sender: TObject);
begin
NMFTP1.Rename(Edit8.Text,Edit9.Text);
end;procedure TForm1.NMFTP1UnSupportedFunction(Trans_Type: TCmdType);
begin
Case Trans_Type of
cmdChangeDir: ShowMessage('ChangeDir unsupported');
cmdMakeDir: ShowMessage('MakeDir unsupported');
cmdDelete: ShowMessage('Delete unsupported');
cmdRemoveDir: ShowMessage('RemoveDir unsupported');
cmdList: ShowMessage('List unsupported');
cmdRename: ShowMessage('Rename unsupported');
cmdUpRestore: ShowMessage('UploadRestore unsupported');
cmdDownRestore: ShowMessage('DownloadRestore unsupported');
cmdDownload: ShowMessage('Download unsupported');
cmdUpload: ShowMessage('Upload unsupported');
cmdAppend: ShowMessage('UploadAppend unsupported');
cmdReInit: ShowMessage('ReInit unsupported');
cmdAllocate: ShowMessage('Allocate unsupported');
cmdNList: ShowMessage('NList unsupported');
cmdDoCommand: ShowMessage('DoCommand unsupported');
end;
end;procedure TForm1.NMFTP1ConnectionFailed(Sender: TObject);
begin
ShowMessage('Connection Failed');
end;procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
NMFTP1.Abort;
end;end.
但功能极其简单的想好就要给钱的
我的LYFTP
http://ly.activepower.net/lysoft/Order.htm
其实这个用Serv-U做服务器外加Serv-U的DLL插件的方法是最好的
不管你用什么FTP客户端都和实现当然定制自己的FTP客户端软件都是可以的
http://lysoft.7u7.net
Tel 020-61286264 CTO Mr Liu
demo\indy\ftpdemo