倾囊提问:定时上传文件的问题(20分)

  • 主题发起人 主题发起人 bbcock
  • 开始时间 开始时间
B

bbcock

Unregistered / Unconfirmed
GUEST, unregistred user!
程序需要定时上传文件,请问用什么控件好?上传时需要判断服务器的指定目录下是否存在当前文件,没有的话,就传,有的话,不传,大概一小时运行一次,控件能实现吗?
 
这个要控件做什么
FileExists判断是否存在
copyfile 拷贝文件
 
要用ftp上传啊,服务器有了的文件就不传了,没有的都传上去,FileExists判断是否存在
copyfile 拷贝文件是在本地机上用的,能用来判断服务器上的文件吗(文件数量很多)?
 
用FTP不错,这样可以支持很多平台,如果时间不够也可以自己做一个专门发送和接受文件的程序也是可以的
 
我查阅了大富翁以前的贴子,关于ftp的控件议论很多,nmftp,idftp,ics等等,哪个好用呢?idftp是不是会自动和服务器断开呢?
 
IDFTP
我用它写的一个下载程序, 每小时下载一次, 已经持续工作了一年多了[:D]
 
idftp是不是会自动和服务器断开呢?
》》你让它断开它敢不断吗
Try
Finnally
idftp.Disconnect;
End;
 
idftp气死我了!!!!!!!!!!!!!!

连接上,上传文件时abort,或进行某些操作时,出现connection closed gracefully,255 abor command successful,等警告对话框,烦死了!!!!

我用delphi6自带的例子试了试,一样!难道没有办法解决这个问题吗?

还有列文件列表,格式很怪异,先时间,大小,文件名,能不能按自己的意思排列呢?如果把列表的有一项设为false,就只显示文件名,问题又来了:文件名和文件夹没有区分!

昨天试了一天,问题多多,郁闷死了!
 
学习,帮你提前
 
连接上,上传文件时abort,或进行某些操作时,出现connection closed gracefully,255 abor command successful,等警告对话框,烦死了!!!!

》》》关闭不就行了,呵呵
Try
Except
End;
 
Try
Except
End;
我也试过,不管用啊!delphi的那个例子写得很好,异常处理也有,可警告框也有。:(
 
把你的代码贴出来看看
 
procedure TForm1.Button1Click(Sender: TObject);
var
AFiles:TStringList;
begin
if IdFTP1.Connected then try
if TransferrignData then IdFTP1.Abort;
statusbar1.SimpleText :='断开连结!';
button2.Enabled :=false;
button5.Enabled :=false;
IdFTP1.Quit;
finally
Edit5.Text := '/';
ListBox1.Items.Clear;
memo1.Clear ;
Button1.Caption := '连接';
end
else with IdFTP1 do try
User := Edit3.Text;
Password := Edit4.Text;
Host := Edit1.Text;
port := strtoint(edit2.Text );
Connect;
ChageDir(Edit5.Text);
finally
if Connected then begin
statusbar1.SimpleText :='连接成功!';
Button1.Caption := '断开连结';
listbox1.Items.Clear;
memo1.Clear ;
AFiles := TStringList.Create;
idftp1.List(afiles,'', false);
listbox1.items.AddStrings(afiles);
afiles.Free;
button2.Enabled :=true;
button5.Enabled :=true;
end;
end;
end;


procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
if button2.Caption='上传文件' then
begin
IdFTP1.TransferType := ftBinary;
button2.Caption :='停止上传';
memo1.Clear ;
for i:=0 to (filelistbox1.Items.Count -1) do
begin
if listbox1.Items.IndexOf(filelistbox1.Items)<0 then
begin
idftp1.Put(filelistbox1.Items,filelistbox1.Items,false);
memo1.Lines.Add (filelistbox1.Items);
application.processmessages;
end;
end;
idftp1.Abort ;
button2.Caption:='上传文件';
end
else
begin
memo1.Clear ;
idftp1.Abort ;
button2.Caption:='上传文件';
end;
end;
 
如何让idftp定时传完文件自动abort?

如何判断上传文件是否上传过呢?
 
怎么没人帮我啊???限分少???
 
如何让idftp定时传完文件自动abort?

如何判断上传文件是否上传过呢?

》》》传完了还abort干什么,可以quit或disconnect呀
》》》怎么判断,可以根据文件的修改日期和大小判断呀。
 
to exceed:
这两个问题不急,现在最急的是怎么把那些该死的对话框去掉啊

我后来每句话都加上
Try
Except
End;
可对话框还是出来:(
 
学习,观注
 
自己写个ftp服务器和客户端好用啊
 
to touip:
现在还没考虑这样做,既然delphi有ftp的控件,为什么不用呢?
 
后退
顶部