FTP问题!!HELP ME!(50分)

  • 主题发起人 主题发起人 loxtln
  • 开始时间 开始时间
L

loxtln

Unregistered / Unconfirmed
GUEST, unregistred user!
我用IDFTP控件传输文件,这都没问题,问题是:
我想每隔一分钟左右传输一次,所以就用了一个定时器,并用了如下代码:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
try
timer1.Enabled :=false;
idftp1.Connect(true);
idftp1.Put('c:/aa.txt','aa.txt',false);
finally
timer1.Enabled :=true
end;
在网络正常的情况下是没有问题的,但是当网络长时间不通时,该应用程序就会停止响应
我不是已经做了容错了吗?为什么还会停止相应呐?
请问如何能够实现:网络不通时就不传,一旦通了就恢复传输,且应用程序不会停止响应!
end;
 
焦急等待中。。。。。。。
 
try
timer1.Enabled :=false;
idftp1.Connect(true);
idftp1.Put('c:/aa.txt','aa.txt',false);
finally
idftp1.Connect(false);
timer1.Enabled :=true
end;
 
增加那一行还是不行啊,我试着这样该了一下,倒可以啦:
try
timer1.Enabled :=false;
try
idftp1.Connect(true,5000);
except
end;
try
idftp1.Put('c:/aa.txt','aa.txt',false);
except end;
finally
idftp1.Disconnect ;
timer1.Enabled :=true
end;

另外idftp的passive属性是干什么用的?谢谢!
 
谢谢您的参与!这么长时间了,把贴结了吧!
 
看来你是要实现续传的功能,这个问题其实很简单。
但上传实现起来就不像用get方法加个参数这么简单,上传时建意用stream的put方法,在续传时先检测FTP服务器上的文件大小,然后接着传指定的位置的数据。
把上述功能写成一个function,然后在Timer1Timer里调用就行了。
方法已经写出来了,代码也很容易就实现了的。
 
后退
顶部