使用IndyFTP如何将服务器上的一个文件移动到一个指定的文件夹?最好不要重新下载上传,因为这是一个经常性的操作

解决方案 »

  1.   

    IndyFTP只是封装了FTP协议的各种命令。
    FTP中有个“!”命令可以在FTP服务器本地执行DOS命令。例 !Copy c:\a.txt d:\a.txt
    或许可以满足你的需求。
      

  2.   

    贴上FTP协议的44种命令:
    1) ? 
    说明:显示ftp命令的说明。后面可以加参数,是加需要解释的命令名,不加则显示包含所有命令列表。 2) append 
    说明:使用当前文件类型设置,将本地文件附加到远程计算机中。大概格式是 
    append local-file [remote-file] 其中local-file是说指定要添加的本地文件。 
    remote-file是说指定要将local-file附加到远程计算机文件,要是省了这个,则是使用本地文件名做远程文件名。 3)ascii 
    说明:默认情况下,将文件传输类型设置为ASCII 4)bell 
    说明:响玲开关,意思是文件传输完成后是否有玲声提醒。默认是关闭的。 5)binary 
    说明:将文件传输类型设置为二进制。 6)bye 
    说明:结束和远程计算机的ftp会话,也就是安全断开,退出ftp. 7)cd 
    说明:更改远程计算机上的工作目录。如cd data 其中data是要进入的远程计算机的目录。 8)close 
    说明:结束与远程服务器的ftp会话,并返回命令解释程序。 9)dir 
    说明:显示远程的文件以及子目录列表。如dir data local-file 
    其中data是指定要查看列表的目录,没指定的话就是当前目录。local-file是指定要保存列表的本地文件,不指定的话就在屏幕输出。 10)debug 
    说明:调试开关,打开的时候打印每个发送到远程计算机的命令,命令前有——> 
    默认情况是关闭的。 11)disconnnect 
    说明:与远程计算机断开连接,但还保持着ftp命令提示符。 12)get 
    说明:使用当前文件传输类型,把远程的文件拷贝到本地计算机上。 
    如get remote-file local-file 
     remote-file是指定要复制的文件,local-file是指定本地计算机上的文件名, 
    没有指定的话则个remote-file同名。 13)glob 
    说明:文件名通配开关 14)hash 
    说明:转换每个传输数据快的散列标记打印(#).数据快的大小是2048字节。默认情况下是关闭的, 15)help 
    说明:显示ftp命令的解释,如help commmand 其中command就是你要解释的命令,如果不加command这个参数的话就会显示所有命令的列表 16)! 
    说明:这个命令差点忘记了:)功能是在本地计算机上运行指定命令。如! command 其中command就是你要运行的命令,如果不加command这个参数的话,则显示本地命令提示, 这时你输入exit命令就能返回到ftp了。 17)lcd 
    说明:更改本地计算机的本地目录,在默认的时候是启动ftp的目录.这个不要觉得没用啊,在你使用ftp的时候为了传递文件不是常改变本地和远程计算机的目录吗?:) 
    如lcd [directory] 其中[directory]是指定要进入的本地计算机的目录,如果你不加这个参数,就会显示出本地计算机的工作目录. 18)literal 
    说明:向远程ftp服务器发送协商参数,报告. 
    如lireral argument [...] 其中argument是指定要发送给远程服务器的协商参数。 19)ls 
    说明:显示远程目录的文件和字目录. 
    如ls remote-directory local-file 
    其中remote-directory是指要查看的列表的目录,不指定的话显示的是当前工作目录。local-file是指定要保存列表的本地文件.不指定的话是在屏幕上输出. 20)mdelete 
    说明:删除远程计算机上的文件.如mdelete remote-file ... 
    remote-file肯定是要删的文件啊,可以删除多个. 21)mdir 
    说明:显示远程目录的文件和子目录列表,他允许指定多个文件. 
    如mdir remote-file ... local-file 
    参数我想大家应该明白什么意思吧?不明白就看看前面的类似命令吧. 22)mget 
    说明:使用当前文件传输类型将多个远程文件复制到本地计算机. 
    如mget remote-files ... 
    其实remote-files可以指定多个,他就是指定要复制到本地计算机的远程文件. 23)mkdir 
    说明:创建远程目录. 
    如mkdir directory 这个命令和nt下的命令提示符中的md directory一样,不多说了. 24)mls 
    说明:显示远程目录的文件和目录简表 
    如mls remote-file ... local-file 
    其中remote-file这个参数是必须要加的,’’-’’是使用远程计算机的当前工作目录. 25)mput 
    说明:使用当前文件传输类型,将本地文件复制到远程计算机. 
    如mput local-files ... 26)open 
    说明:连接到指定ftp服务器上, 
    如open computer port 其中computer一般是远程计算机的ip地址,port不用说就是指定端口了。 27)prompt 
    说明:转换提示,在多个文件传输的时候,ftp提示可以有选择的检索或保存文件,如果关闭提示,则mget和mput命令传输所有文件,在默认情况下是打开的. 28)put 
    说明:使用当前文件传输类型将本地文件复制到远程计算机中, 
    如put local-file remote-file 
    其中local-file是指定要复制的本地文件, 
     remote-file是指定要复制的远程计算机上的文件名,不指定的话是和本地计算机上的文件名同名. 29)pwd 
    说明:显示远程呢感计算机上的当前目录. 30)quit 
    说明:结束与远程计算机的ftp会话,并退出ftp. 31)quote 
    说明:向远程ftp服务器发送协议,报告.期待ftp单码应答,这个命令的功能和literal相同. 32)recv 
    说明:使用当前文件传输类型将远程文件复制到本地计算机,他与get命令作用相同。 33)remotehelp 
    说明:显示远程命令的帮助.这个命令的用法和help,!一样可以参考他的用法. 34)rename 
    说明:更改远程计算机上的文件名。 
    这个命令和nt的命令提示符的ren一样,如rename filename newfilename 35)rmdir 
    说明:删除远程目录. 
    这个命令和nt的命令提示符的rm一样,如rmdir directory 36)send 
    说明:使用当前文件传输类型将本地文件复制到远程计算机.send和put命令的功能一样。 
    如send local-file remote-file 37)status 
    说明:显示ftp连接和转换的当前状态 38)trace 
    说明:转换报文跟踪,运行ftp的命令时,trace将显示没个报文的理由。 39)type 
    说明:设置或显示文件传输类型. 
    如type [type-name] 
    其中type-name 的意思是文件传输的类型,默认是ASCII,没加这个参数就是显示当前的传输类型. 40)user 
    说明:指定连接到远程计算机的用户. 
    如user user-name [passwd] [account] 
    其中user-name不用说都是用来登陆计算机的用户名了, 
    passwd是指定user-name的密码,不指定的话ftp会提示输入密码。 
    account是指定用来登陆计算机的帐号,如不指定,ftp会提示输入帐号. 41)verbose 
    说明:转换冗余模式。这里如果打开,会显示所有ftp响应,文件传输结束的时候会显示传输的效率和统计信息,默认的情况是打开的.
      

  3.   

    楼主不好意思,刚测过,“!”只是在客户机执行命令,而不是在服务器执行命令。
    要想直接在服务器端拷贝文件,FTP命令可能办不到了。
    期待高手给出答复。
      

  4.   

    非常感谢,请问如何执行这些?通过IdFTP?
      

  5.   

    cmd进Dos状态,然后输入ftp即,进入ftp命令模块
    可以用open 127.0.0.1,连接FTP服务器
      

  6.   

    呵呵,还是我自己解决了。可以通过rename方法来移动文件,不知道各位大虾还有什么高招
      

  7.   

    SITE EXEC方法也OK,不过不推荐~
      

  8.   

    已经自己解决那个问题了,Delphi社区人气好淡啊。谁知道如何通过这个控件复制文件(除了重新下载再上传以外),今天结贴!!!!!~~~~~~~
      

  9.   

    ly_liuyang(Liu Yang LYSoft http://lysoft.7u7.net)可否留个QQ?