两个服务器间的文件定时传输(用D5的NMFTP实现)。(100分)

  • 主题发起人 主题发起人 guchunxia
  • 开始时间 开始时间
G

guchunxia

Unregistered / Unconfirmed
GUEST, unregistred user!
目的:其中一个服务器作为客户端,向另一服务器定时下载新文件。
请各大位虾多多指点。
 
看来只能靠you自己了!:-(
 
计划任务 + ftp
 
自己做一个东东,定时可以由你那个东东来做到,至于FTP,喜欢的话把你那个东东做成一个
FTP SERVER或者用其他的FTP SERVER,不过你那个东东肯定要做成一个FTP CLENT之类的
。用ICS吧,它提供了CLIENT和SERVER 的例子,不过想做好,也不是太简单。
 
ICS 的FTP CLIENT AND SERVER控件。

其实现成的软件,如SECOND COPY, 98的同步都可以满足你的需求。
 
谢谢大家的建议,但我已经用NMFTP做了一半,时间已不允许我改换其它控件了。
我在下载服务器文件到本地c:/时,出现了错误,请大家帮帮忙。 procedure TMainFTP.download;
const
driver='c:';
var
T,S:array[0..500] of string;
temp1,temp2:string;
count,flag,i:integer;
begin
T[0]:=driver+'/';//本地
S[0]:='/'; //远地

count:=0;
for i:=1 to NMFTP1.FTPDirectoryList.name.Count do
with NMFTP1.FTPDirectoryList do
begin
if Attribute[1] <>'d'
then NMFTP1.Download(S[0]+Name,T[0]+Name)
else
begin
count:=count+1;
S[count]:=S[0]+Name;
T[count]:=T[0]+Name;
end;
end;

flag:=1;
while flag<=count do
begin
NMFTP1.ChangeDir(S[flag]);
try
temp1:=T[flag];
temp2:=S[flag];
chdir(temp1);
except
mkdir(temp1);
end;
for i:=1 to NMFTP1.FTPDirectoryList.name.Count do
with NMFTP1.FTPDirectoryList do
begin
if Attribute[1] <>'d'
then NMFTP1.Download(temp2+Name,temp1+Name)
else
begin
count:=count+1;
S[count]:=temp2+Name;
T[count]:=temp1+Name;
end;
end;
end;
end;
错误为:project FTP.exe raised exception class EStringlistError with message 'list index out of bounds(8)',...

 
GUCHUNXIA:
这是由于你的下标出错了,
for i:=1 to NMFTP1.FTPDirectoryList.name.Count do是错误的
必须从0开始,到COUNT-1结束,即:
for i:=0 to NMFTP1.FTPDirectoryList.name.Count-1 do
就可以了。
 
多人接受答案了。
 
谢谢大家的热情参与。
 
后退
顶部