如何实现从FTP上自动下载文本文件(50分)

  • 主题发起人 主题发起人 shuishijia
  • 开始时间 开始时间
S

shuishijia

Unregistered / Unconfirmed
GUEST, unregistred user!
我有个工作每天需要去FTP上下载对应的文本文件,想要简化,用Delphi实现从FTP上每天自动下载带有日期名称的文件,如ABC2006_4_29.txt,请教各位大大,应该如何实现。偶分不多了,望各位见谅!
 
最好是每日定时到FTP上DOWN文件,文件名中日期每日都会变化
 
给你个函数,你可能要改一下,服务器信息我是用另外一个函数取的。
function GetFilesFromFTP(sFileName:string):Boolean;
var
sHost, sPath, sUserName, sPassword, ErrMsg: string;
iPort: integer;
ftpRmyh: TIdFTP;
slFiles :TStringList;
i:integer;
s:string;
begin
Result := False;
if GetFtpHostInfo(copy(sFileName,1,2),sHost, iPort, sPath, sUserName, sPassword, ErrMsg) = S_OK then
begin

ftpRmyh := TIdFTP.Create(nil);
ftpRmyh.Host := sHost;
ftpRmyh.Port := iPort;
ftpRmyh.Username := sUserName;
ftpRmyh.Password := sPassword;
slFiles := TStringList.Create;
try
ftpRmyh.Connect;
if Trim(sPath) <> '' then
ftpRmyh.ChangeDir(sPath);
ftpRmyh.List(slFiles,sFileName,False);
if ftpRmyh.ListResult.Count > 0 then
begin
for i := 0 to slFiles.Count-1do
begin
s := slFiles.Strings;
ftpRmyh.Get(s,ExtractFilePath(Application.ExeName)+s,True);
end;
Result := True;
end
else
begin
Result :=False;
end;
ftpRmyh.Disconnect;
except
Application.MessageBox('FTP服务器连接失败', '提示', MB_OK + MB_ICONERROR);
end;

slFiles.Free;
FreeAndNil(ftpRmyh);
end
else
begin
Application.MessageBox(PChar('取FTP服务器信息失败,错误信息如下:' + ErrMsg), '提示', MB_OK + MB_ICONERROR);
end;
end;

至于定时取你就用定时器做好了。
 
有没有人能给出完整的源程序啊
 
delphi/demos/indy/ftpdemo
delphi自帶的demo,可以去看一下,在那基礎上加個定时器應該就能滿足你的要求了.
 
后退
顶部