我在使用TidFTP组件时遇到了问题。
我能够使用如下代码连接到服务器
vFileList := TStringList.Create;
oClientFTP := TidFTP.Create(nil);
oClientFTP.Port := PortFTP;
oClientFTP.Host := IPHost;
oClientFTP.UserName := UserFTP;
oClientFTP.Password := PasswordFTP;
从StringList获取多个文件后(该列表正好有778个元素),当检索到第137个元素时,会引发异常EIdAcceptTimeout,并显示“Accept timed out.”消息。
我运行的代码如下(顺便说一下,这是在一个线程中运行的)
procedure TDownloadFTP.Get;
begin
try
for I := 0 to vFileList .Count - 1 do
begin
sFileName:= vFileList [I];
posPoint := LastDelimiter('.', sFileName);
if posPoint = 0 then
ForceDirectories(ExtractFilePath(Application.ExeName) + '/BackUp/' + sFileName)
else
try
oClienteFTP.Get(sFileName,IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName) + '/BackUp/') + sFileName, True);
except
on E: EIdReplyRFCError do
begin
end;
on E: Exception do
exceptionList.Add(sFileName);
end;
end;
在发生异常后,文件会被正确下载,但是每个文件的处理过程需要约25秒时间(我正在下载2KB的PNG图像)。
你对这个异常的含义有任何想法吗?
谢谢