给你个函数,你可能要改一下,服务器信息我是用另外一个函数取的。
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;
至于定时取你就用定时器做好了。