高分求解IDFTP下载/上传数据的问题 ( 积分: 300 )

  • 主题发起人 主题发起人 weiliu
  • 开始时间 开始时间
W

weiliu

Unregistered / Unconfirmed
GUEST, unregistred user!
出于应用需要,要写一个FTP程序,使用IDFTP控件。
要求:每下载一个文件之后将原来FTP上的文件转移到此FTP上的另一个文件夹以作为备份。
现在的问题有两个:
1、IDFTP好像没有直接将FTP上的文件从这个FTP的一个文件夹转到另一个文件夹的功能,因此本人采取了先下载后上传的笨办法,速度肯定很慢而且还很好笑,不知大家有无好的方法呢?
2、如果采取上面这种方法来先下载后上传备份文件的话,文件的日期时间将会变成上传之时的,那么如何将文件下载下来再上传FTP时保持文件的日期时间不动呢?即下载到本地硬盘的文件日期时间与上传回FTP的文件日期时间都保持最初其在FTP上的文件日期时间。
 
出于应用需要,要写一个FTP程序,使用IDFTP控件。
要求:每下载一个文件之后将原来FTP上的文件转移到此FTP上的另一个文件夹以作为备份。
现在的问题有两个:
1、IDFTP好像没有直接将FTP上的文件从这个FTP的一个文件夹转到另一个文件夹的功能,因此本人采取了先下载后上传的笨办法,速度肯定很慢而且还很好笑,不知大家有无好的方法呢?
2、如果采取上面这种方法来先下载后上传备份文件的话,文件的日期时间将会变成上传之时的,那么如何将文件下载下来再上传FTP时保持文件的日期时间不动呢?即下载到本地硬盘的文件日期时间与上传回FTP的文件日期时间都保持最初其在FTP上的文件日期时间。
 
试试Quote来向FTP服务器发送一个move命令
 
麻烦具体一点。
 
麻烦说的具体一些。
 
这个问题居然没有人会吗?
 
不知道你的备份是在同一台机器上还是在不同的机器上
如果在同一台机器上,拷贝过去就可以了;如果是在不同的服务器上,只好FTP了(当然也可以用拷贝的方式)
 
to xianguo:
肯定是备份在同一台机器上,问题是在IDFTP中,怎样在FTP服务器中实现直接COPY或MOVE?
 
ftp服务程序是操作系统提供的,你准备自己写服务程序吗?
不只你打算实现什么功能,需要在下载时做备份?或许可以通过变通一下,达到你的需求
 
IDFTP好像没有这样的功能,关键是FTP服务器没有提供这样的命令。
变通方法:自己设计服务器和客户端软件,就楼主这样的需求,应该很好实现。
 
晕,难道是我说的不够清楚?
大家一定都用过很多的FTP软件,比如WS_FTP LEAPFTP等。
拿WS_FTP为例,比如它进入了一个FTP站点之后,在右边的REMOTE SYSTEM窗口里,你选中一个或一批文件,然后按MOUSE右键,弹出的菜单里有MOVE FILES功能,你点击它,它会要你输入一个FTP上已经存在的另一个文件夹的名称,你输入完后它就会将你选中的文件MOVE到这个FTP的文件夹里,从过程来看它并没有从FTP下载文件到本地硬盘再上传,因此非常快,而且还能保持文件的日期时间不变。
现在我的问题就是如何编程实现这个过程?
 
2个问题.
第一,你的FTP服务器是否支持这个操作;
第二,IDFtp没有这样的功能
 
to lancers,
第一、这个FTP服务器在WS_FTP下确实支持这样的转移操作。
第二、如果IDFTP做不到,那么什么东西怎样才能做到?
 
to weiliu:
不好意思,刚才我说得不对,你看看IDFTP的ReName,可以实现你所要求的功能,很简单
 
以下是我将楼主的问题提交给serv-u技术人员的全部过程。
在serv-u中可以实现,使用的命令是 RNFR 和 RNTO.。
详细解答参考以下链接:
http://www.rhinosoft.com/respcode.asp?cmd=RNFR&prod=fv



Hello,

RNFR and RNTO.
http://www.rhinosoft.com/respcode.asp?cmd=RNFR&prod=fv
http://www.rhinosoft.com/respcode.asp?cmd=RNTO&prod=fv

Louis C. Branch
http://www.RhinoSoft.com
Voice: +1(262) 560-9627
FAX: +1(262) 560-9628

****************************************
NOTE: When replying to this message, please leave
the complete history of messages intact.
****************************************


----- Original Message -----
From: "chnplzh" <chnplzh@mlfjnp.com>
To: <service@rhinosoft.com>
Sent: Wednesday, May 18, 2005 6:58 PM
Subject: about rename directory


Customer Name=chnplzh
Email= chnplzh@mlfjnp.com
Product=Serv-U Standard
Product Version=5.0
Operating System=Windows 2000
Firewall/Antivirus software=
Internet Connection=LAN

Recommended KB articles= 1043, 1048, 1146, 1180, 1248, 1296, 1412
Viewed KB articles=

http://www.RhinoSoft.com/kbsearch.asp?TechHelp=1043,1048,1146,1180,1248,1296,1412

Description:
in Serv-U 5.0, Can Client send a command to serv-u, the command tell serv-u to rename directory. What command?

thank you
 
TO lancers:
呵呵,不知道RENAME还有这么特殊的用途。
搞定了,谢谢。
不过还有个问题,那就是RENAME只能将文件从FTP的一个文件夹转到另一个文件夹,如果我要将文件从FTP的一个文件夹COPY到另一个文件夹的话怎么办?
解决了这最后一个问题后马上送分。
 
to weiliu:
呵呵,我想是一样的道理的,经过测试是成功的,代码如下:
…………
procedure TForm1.Button1Click(Sender: TObject);
begin
with IdFTP1 do
begin
User := sUser;
Password := sPassword;
Host := sHost;
Connect;
end;
IdFTP1.Rename('/临时测试/B', '/临时测试/A/B');
showmessage('RenameTestOK');
end;
…………
运行结果:将文件夹B移动到文件夹A中
 
to lancers:
你误会我的意思了,我是指如何在FTP上把一个文件从一个文件夹COPY到另一个文件夹,RENAME只有MOVE的功能,那么如何做到复制呢?
难道真的要下载下来再上传这么笨的方法吗?
 
to weiliu:
据我所知,FTP好象不支持的吧,只能用这样的办法,你可以去查查看FTP的协议规定,我只是大概的有这样的印象
 
to weiliu:
如果是自己的FTP,怎么不在该FTP的本地机器上操作而要下载再上传?WS_FTP的例子应该也是在FTP服务器的本地运行的,只是赋予你权限移动他机子上的文件吧?我对WS_FTP没有研究,没有发言权,呵呵
 
后退
顶部