FTP协议(指令集)_ftp.changetoparentdirectory()方法执行的是什么指令-程序员宅基地

技术标签: ftp  

FTP协议采用一系列简单的协议来完成文件传输的各种任务,在发送命令的时候,总是在命令的最后加上一个回车换行符,在VB中可以用“vbcrlf”来实现,vc中以“/r/n”表示。以下的命令是从Postel和Reynolds所著的RFC 929修改而来,如果读者想查看详细内容,可以参见英文版RFC 929。注意以下出现地标志符CRLF表示的是回车符号,即相当于VC中的“/r/n”。

1.  ABOT(Abort,中止)命令

说明:告诉服务器中止上一次FTP服务命令及所有相关的数据传输。

用法:ABOR﹝CRLF﹞

参数:无。

例子:

SendData "ABOR" + “/r/n”

注释:中止命命令可以请求“特殊操作”以强行引起服务器的重视(详情请参看RFC959)。如果上一次命令已经完成(包括数据传输),就不会导致任何操作。服务器不会关闭控制连接,但必须关闭数据连接。

服务器在接收到此命令时可能处于两种状态下:(1)FTP服务命令已经完成,(2)FTP服务命令尚在处理中。

在第一种状态下,服务器关闭数据连接(如果它是打开的)并响应以226应答,表示已成功执行了中止命令。

在第二种状态下,服务器中止正处理中的FTP服务并关闭数据连接,返回426应答,表示该服务请求被异常终止。然后服务器发送226应答,表示成功执行了中止命令。

l         225  数据连接打开,没有正在进行的传输

l         226  关闭数据连接,请求的文件操作成功。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         226  连接关闭,传输终止。

l         500  语法错误,无法识别命令。

这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         502  命令还没有被实现。

2.  ACCT(Account,帐号)命令

说明:指定用户的帐号信息。这条命令只能在发送PASS命令并接收到332代码之后发送。

用法:ACCT<Account><CRLF>

参数:Account是用户的帐号,访问某些服务时可能另外需要它。

例子:

SendData "ACCTN322s"  + “/r/n

注释:当登录需要帐号信息时,一条成功的PASS命令的响应是应答代码332。反之,如果登录不需要帐号信息,成功的PASS命令的应答是230;如果在对话中后来发出的命令需要帐号信息,服务器会返回332或532应答,这分别取决于它是保存(在接收ACCT命令期间)还是丢弃此命令。

返回值(粗体表示成功):

l         202  命令还没有被实现,在此站点上是多余的。

l         230  用户已登录,请继续。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         500  语法错误,无法识别命令。

这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         502  命令还没有被实现。

l         503  命令的顺序不对。

l         530  无法登录。

3.  ALLO(Allocate,分配)命令

说明:发送文件前在服务器上分配X个字节

用法:ALLO<NumberBytes[<MaxSize>]<CRLF>

参数:NumberBytes是一个整数,代表为该文件保留的内存字节数(使用逻辑字节大小计算)。MaxSize是在使用记录或页数据结构时可选的最大记录或页大小。

例子:

SendData "ALLO 3000 128"  + “/r/n

注释:一些要保留足够内存以容纳将要传输的新文件的服务,会请求这条命令。对于用记录或页结构发送的文件来说,最大记录或页大小(以逻辑字节计)也可能是必需的;它以这条命令的第二个参数字段中的十进制整数表示。这第二个参数是可选的,但在出现时应该与第一个参数三个ASCII字符<SP>P<SP>分隔开。这条命令后跟一条STORe或APPEnd命令。那些不要求事先声明最大文件大小的服务器应该把ALLO命令视为NOOP(不操作),而那些只关心最大记录或页大小的服务器应该受第一个参数的值,然后忽略它。

返回值(粗体表示成功):

l         200  命令成功。

l         202  命令还没有被实现,在此站点上是多余的。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将被关闭,会向所有命令做出这个应答。

l         500  语法错误,无法识别命令。

这其中包括命令行过长之类的错误

l         501  参数或变元中有语法错误

l         504  命令中还没有实现该参数

l         530  无法登录。

4.  APPE(Append with create,附加和创建)命令

说明:让服务器准备接收一个文件并指示它把这些数据附加到指定的文件名,如果指定的文件尚未存在,就创建它。

用法:APPE<FileName><CRLE>

参数:FileName是服务器站点上一个完全合格的路径和文件名。

例子:

SendData "APPE" & szFileName  + “/r/n

返回值如下(粗体表示成功)。

l         110  重新启动标记应答。

在此情况下,文本是精确的,而且不会留给特殊的实现处理;它必须读取:

MARK yyyy=mmmm

其中yyyy是用户进程的数据流标记,mmmm是服务器上的相应标记(请注意标记和“=”之间的空格)。

l         125  数据连接已打开,传输启动。

l         150  文件状态没问题,准备打开数据进行连接。

l         226  关闭数据连接,请求的文件操作已成功。

l         250  请求的文件操作没问题,已完成。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         425  无法打开数据连接。

l         426  连接关闭;传输中止。

l         450  请求的文件操作无法执行,文件不可用(例如文件正忙)。

l         451  请求的操作被中止,处理中发生本地错误。

l         452  请求的操作无法执行,系统的存储空间不足。

l         500  语法错误,无法识别命令。

这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         502  命令还没有被实现。

l         530  无法登录。

l         532  文件的存储需要帐号。

l         550  请求的操作无法执行,文件不可用(例如找不到文件,无访问权)。

l         551  请求的操作被中止,未知的页类型。

l         552  请求的文件操作被中止,超过了分配的存储单元(对当前目录或数据集而言)。

l         553  请求的操作无法执行,不允许的文件名。

5.  CDUP(Change to Parent Directory,变为父目录)命令

说明:把当前目录改为远程文件系统的根目录,无需改变登录、帐号信息或传输参数。

用法:CDUP<CRLF>

参数:无。

例子:

SendData "CDUP"  + “/r/n

注释:CDUP目录可改为父目录。MS-DOS中的等效命令是cd/。创建这条命令是为了适应FTP的不同操作系统。

返回值如下(粗体表示成功):

l         250  请求的文件操作正常进行,已完成。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         500  语法错误,无法识别命令。这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         502  命令还没有被实现。

l         530  无法登录。

l         550  请求的操作无法执行,文件不可用(例如找不到文件,无访问权)。

6.  CWD(Change Working Directory,改变工作目录)命令

说明:把当前目录改为远程文件系统的指定路径,而无需改变登录、帐号信息或传输参数。

用法:CWD<Path><CRLF>

参数:Path是远程系统上的一个工作目录。

例子:

SendData "CWD/pub/cgvb/uploads"  + “/r/n

返回值如下(粗体表示成功):

l         250  请求的文件操作正常进行,已完成。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命做出这个应答。

l         500  语法错误,无法识别命令。这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         502  命令还没有被实现。

l         530  无法登录。

l         550  请求的操作无法执行,文件不可用(例如找不到文件,无访问权)。

7.  DELE(Delete,删除)命令

说明:删除服务器站点上在路径名中指定的文件。

用法DELE<FileName><CRLF>

参数:FileName是服务器站点上一个完全合格的路径和文件名。

例子:

SendData "DELE temp.fil" + “/r/n

注释:如果期望有额外的保护级别(例如选项"确实要删除此文件吗?"),这应该由客户软件提供。

返回值如下(粗体表示成功):

l         250  请求的文件操作正常进行,已完成。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         450  请求的文件操作无法执行,文件不可用(例如文件正忙)。

l         500  语法错误,无法识别命令。这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         502  命令还没有被实现。

l         530  无法登录。

l         550  请求的操作无法执行,文件不可用(例如找不到文件,无访问权)。

8.  HELP(Help,帮助)命令

说明:让服务器通过到客户的控制连接发送有关其实现状态的帮助信息。

用法:HELP[<Topic>]<CRLF>

参数:Topic是一个可选的命令,或是请求哪条命令有关文本的其他参数。

例子:

SendData "HELP" + “/r/n

注释:HELP可以带一个参数(例如任何命令的名称),以在响应中返回更具体的信息。应答为类型211或214。建议在输入USER命令前允许使用HELP命令。服务器可以使用这个应答来指定站点相关的参数,例如在对HELP SITE的响应中。

返回值如下(粗体表示成功):

l         211  系统状态,或系统的帮助应答。

l         214  帮助消息。

描述如何使用服务器或某条不常用的具体命令的方法。这个应答只对用户有用,因为帮助消息没有标准的格式。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向有命令做出这个应答。

l         500  语法错误,无法识别命令。这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         502  命令还没有被实现。

9.  LIST(List,列表)命令

说明:让服务器给客户发送一份列表。

用法:LIST[<PathName>]<CRLF>

参数:PathName是服务器系统上的一个有效路径和文件规范。

例子:

SendData "LIST pub/*.*" + “/r/n

注释:如果路径名指定的是一个目录或其他文件组,服务器传送一份位于指定目录中的文件的列表。如果路径名指定的是一个文件,那么服务应该发送此文件的当前信息。空变元则暗指用户的当前工作目录或默认目标。数据将在类型ASCII或类型EBCDIC中通过数据连接传送(用户必须确保ASII或EBCDIC的类型适当)。

因为系统与系统之间的文件信息可能有很大差别,所以这项信息要在程序中自动使用可能很困难,但对用户来说会很有用。

返回值如下(粗体表示成功):

l         125  数据连接已打开,传输启动。

l         150  文件状态没问题,准备打开数据连接。

l         226  关闭数据连接,请求的文件操作已成功。

l         250  请求的文件操作正常进行,已完成。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         425  无法打开数据连接。

l         426  连接关闭,传输中止。

l         450  请求的文件操作无法执行,文件不可用(例如文件正忙)。

l         451  请求的操作被中止,处理中发生本地错误。

l         500  语法错误,无法识别命令。这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         502  命令还没有被实现。

l         530  无法登录。

10.  MKD(Make Directory ,创建目录)命令

说明:创建一个在路径名中指定的目录(如果是绝对路径名)或当前工作目录的子目录(如果是相对路径名)。

用法:MKD<Path><CRLF>

参数:Path是服务器端上的一个有效路径。

例子:

SendData "MKD /users/johnsmith" + “/r/n

返回值如下(粗体表示成功):

l         257  “PATHNAME”已创建。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         500  语法错误,无法识别命令。这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         502  命令还没有被实现。

l         530  无法登录。

l         550  请求的操作无法执行,文件不可用(例如找不到文件,无访问权)。

11.  MODE(Transfer Mode,传输模式)命令

说明:指定传输模式。

用法:STRU<Mode><CRLF>

参数:Mode是如下ASCII值的其中之一:

S——Stream(流,默认值)

B——Block(块)

C——Compressed(经过压缩)

例子:

SendData "STRU B" + “/r/n

返回值如下(粗体表示成功):

l         200  命令成功。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         500  语法错误,无法识别命令。这其中包括令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         504  命令中还没有实现该参数。

l         530  无法登录。

 

12.  NLST(Name List,名称列表)命令

说明:让服务器给客户发送一份目录列表。

用法:NLST[<PathName>]<CRLF>

参数:PathName是服务器系统上的一个有效路径和文件规范。

例子:

SendData "NLST /pub/cgvB" + “/r/n

注释:路径名应该指定一个目录或其他由系统指定的文件组描述符,空变元则暗指当前目录。服务器将返回一个文件名称的流,除此之外没有其他信息。数据将以ASCII或EBCDIC类型通过数据连接传送,其中的有效路径名字符串由<CRLF>或<NL>分隔(用户必须确保类型正确)。

NLST希望返回的信息可被程序用来进一步地自动处理这些文件。例如,在一个“断点续传”功能的实现中。

返回值如下(粗体表示成功):

l         125  数据连接已打开,传输启动。

l         150  文件状态正常,准备打开数据连接。

l         226  关闭数据连接,请求的文件操作已成功。

l         250  请求的文件操作正常进行,已完成。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         425  无法打开数据连接。

l         426  连接关闭,传输中止。

l         450  请求的文件操作无法执行,文件不可用(例如文件正忙)。

l         451  请求的操作被中止,处理中发生本地错误。

l         500  语法错误,无法识别命令。这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         502  命令还没有被实现。

l         530  无法登录。

13.  NOOP(NOOP,无操作)命令

说明:这是一条不进行操作的命令,即它什么都不做。

用法:NOOP<CRLF>

参数:无。

例子:

SendData "NOOP" + “/r/n

注释:NOOP不会影响任何参数或以前输入的命令。除了让服务器发送一条OK应答外,它不指定任何操作。

返回值如下(粗体表示成功):

l         200  命令成功。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         500  语法错误,无法识别命令。

14.  PASS(Password,密码)命令

说明:向远程系统发送用户的密码,该命令在USER命令后使用。

用法:PASS<Password><CRLF>

参数:Password是由USER命令指定的已注册用户密码。

例子:

SendData "PASS mypassworD" + “/r/n

注释:在连接到一台FTP服务器的端口21并接收到一个由代码220打头的行,表示服务器已准备好你向它发USER和PASS命令,以登录进此FTP服务器之后,紧跟着发送USER命令。

PASS命令应该紧跟着USER命令。

如果你在此FTP服务器上有帐号,就可以指定自己的用户名和密码。如果想匿名登录,可以指定用户名为“Anonymous”,而用自己的电子邮件地址当密码。

返回值如下(粗体表示成功):

l         202  命令还没有被实现,在此站点上是多余的。

l         230  用户已登录,请继续。

l         332  登录需要帐号(请参看ACCT命令)。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         500  语法错误,无法识别命令。这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         530  无法登录。

15.  PASV(Passive,被动的)命令

说明:告诉服务器在一个非标准端口上收听数据连接。

用法:PASV<CRLF>

参数:这条命令请求server-DTP(服务器数据传送规约)“收听”某个数据端口(该端口不是它的默认数据端口),并等待一个连接而不是在收到传输命令时初始化一个连接。对这条命令的响应包括主机地址和此服务器正在收听的端口地址。

例子:

SendData "PASV" + “/r/n

返回值如下(粗体表示成功):

l         227  输入被动模式(h1,h2,h3,h4,p1,p2)。

返回值包括一个在数据连接中使用的数据端口的HOST-PORT规约。此参数是一个32位Internet主机地地址和一个16位TCP端口地的拼接。这个地址信息被拆分为8位的字段,并且每个字段的值是作为一个十进制数传输的(在字符串意义上)。H1是Internet主机地址的高位字节,p1是端口地址的高位字节。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         500  语法错误,无法识别命令。这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         503  无法登录。

16.  PORT(Data  Port,数据端口)命令

说明:为数据连接指定一个IP地址和本地端口。

用法:PORT<Socket><CRLF>

参数:Socket是数据连接中要使用的数据端口的一个HOST-PORT规约。用户和服务器都有默认的数据端口,在正常情况下不需要这条命令和对它的应答。如果使用了这条命令,则参数是一个32个Internet主机地址和一个16位TCP端口地的拼接。这个地址信息被拆分为8位的字段,并且每个字段的值是作为一个十制数传输的(在字符串意义上)。各个字段用逗号分隔开。一条端口命令可以是这样:

PORT h1,h2,h3,p1,p2

其中H1是Internet主机地址的高位字节,P1是本地端口的高位字节。

例子:

SendData "PORT 199,199,199,0,33,1" + “/r/n

返回值如下(粗体表示成功):

l         200  命令成功。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         500  语法错误,无法识别命令。

这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         530  无法登录。

17.  PWD(Print Working Directory,打印工作目录) 命令

说明:在应答中返回当前工作目录的名称。

用法:PWD<CRLF>

参数:无

例子:

SendData "PWD" + “/r/n

返回值如下(粗体表示成功):

l         257  “PATHNAME”已创建

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         500  语法错误,无法识命令。这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         502  命令还没有被实现。

l         550  请求的操作无法执行,文件不可用(例如找不到文件,无访问权)。

18.  QUIT(Logout,注销)命令

说明:终止连接。

用法:QUIT<CRLF>

参数:无。

例子:

SendData "QUTI" + “/r/n

注释:QUIT将终止此USER,如果没有正在进行的文件传送,服务器将关闭控制连接。如果文件传送正在进行,该连接仍然打开直至结果呼响应,然后服务器将其关闭。如果用户进程正在为几个USER传送文件,不想关闭后再逐个重新打开连接,那么应该使用REIN命令代替QUIT。

控制连接的意外关闭会导致服导器采取有效的中止(ABORT)和注销(QUIT)操作。

返回值如下(粗体表示成功):

l         221  服务正在关闭控制连接。

l         500  语法错误,无法识别命令。

19.  REIN(Reinitialize,重新初始化) 命令

说明:终止一个用户。

用法:REIN<CRLF>

参数:无。

例子:

SendData "REIN" + “/r/n

注释:除了允许完成正在进行的传送之外,REIN将刷新所有的I/O和帐号信息。所有参数都被复位到默认设置,控制连接仍然打开。这和用户在刚刚打开控制连接时的状态是一样的。如果后来想要登录,在发送USER命令之前送一条REIN命令。

返回值如下(粗体表示成功):

l         120  服务将在nnn分钟后准备好。

l         220  服务已为新用户准备好。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         500  语法错误,无法识别命令。这其中包括命令行过长之类的错误。

l         502  命令还没有被实现。

20.  REST(Restart,重新启动)命令

说明:标识出文件内的数据点,将从这个点开始继续传送文件。

用法:REST<Marker><CRLF>

参数:Marker代表文件传送将要由此重新启动的服务器标记。

例子:

SendData "REST 244" + “/r/n

注释:REST不会引起文件传送,而只是跳到文件中指定的数据检验点上。RSET后紧跟着适当的FTP服务命令,该命令才会引起文件的继续传送。

返回值如下(粗体表示成功):

l         无响应即表示成功。

l         350  请求的文件操作在等待更进一步的信息。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         500  语法错误,无法识别命令。这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         502  命令还没有被实现。

l         530  无法登录。

21.  RETR(Retrieve,检索)命令

说明:这条命令让服务器给客户传送一份在路径名中指定的文件的副本。这不会影响该文件在服务器站点上的状态和内容。

用法:RETR<FileName><CRLF>

参数:FileName是服务器站点上一个完全合格的路径和文件名。

例子:

SendData "RETR /pub/cgvb/misc/somefile.zip" + “/r/n

返回值如下(粗体表示成功):

l         110  重新启动标记应答。

在此情况下,文体是精确的,而且不会留给特定的实现处理;它必须读取:

MARK yyyy=mmmm

其中yyyy是用户进程的数据流标记,mmmm是服务器上的相应标记(请注意标记和“=”之间的空格)。

l         125  数据连接已打开,传输启动。

l         150  文件状态没问题,准备打开数据连接。

l         226  关闭数据连接,请求的文件操作已成功。

l         250  请求的文件操作正常进行,已完成。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         425  无法打开数据连接。

l         426  连接关闭,传输中止。

l         450  请求的文件操作无法执行,文件不可用(例如,文件正忙)。

l         451  请求的操作被中止,处理中发生本地错误。

l         500  语法错误,无法识别命令。

这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         504  命令中还没有实现该参数。

l         530  无法登录。

l         550  请求的操作无法执行,文件不可用(例如找不到文件,无访问权)。

22.  RMD(Remove Directory,删除目录)命令

说明:删除一个在路径名中指定的目录(如果是绝对路径名)或当前工作目录的子目录(如果是相对路径名)。

用法:RMD<Path><CRLF>

参数:Path是服务器端上一个完全合格的路径。

例子:

SeddData "RMD /users/johnsmith" + “/r/n

返回值(粗体表示成功):

l         250  请求的文件操作没问题,已完成。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         500  语法错误,无法识别命令。

l         501  参数或变元中有语法错误。

l         502  命令还没有被实现。

l         530  无法登录。

l         550  请求的操作无法执行;文件不可用(例如,找不到文件,无访问权)。

23.  RNFR(Rename From,把…重命名)命令

说明:文件重命名进程的前一半。指定要重命名的文件的旧路径和文件名。

用法:RNFR<FileName><CRLF>

参数:FileName是服务器站点上一个完全有效的路径和文件名。

例子:

SendData "RNFR source.zip" + “/r/n

RNFR后面必须紧跟着一条指定新路径和文件名的"Rename to"命令(RNTO)。

返回值如下(粗体表示成功):

l         无响应即表示成功

l         350  请求的文件操作在等待更进一步的信息。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         450  请求的文件操作无法执行,文件不可用(例如文件正忙)。

l         500  语法错误,无法识别命令。这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         502  命令还没有被实现。

l         530  无法登录。

l         550  请求的操作无法执行,文件不可用(例如找不到文件,无访问权)。

24.  RNTO(Rename TO,重命名为)命令

说明:文件重命名进程的后一半。指定要重命名的文件的新路径和文件名。

用法:RNTO<FileName><CRLF>

参数:FileName是服务器站点上的一个有效文件名。

例子:

SendData "RNTO destination.ziP" + “/r/n

注释:RNTO前面必须是一条"Rename from"命令(RNFR)。RNER和RNTO合在一起才能重命名服务器上的一个文件。

返回值如下(粗体表示成功):

l         250  请求的文件操作正常进行,已完成。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         500  语法错误,无法识别命令。这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         502  命令还没有被实现。

l         503  命令的顺序不对。

l         530  无法登录。

l         532  文件的存储需要帐号。

l         553  请求的操作无法执行,不允许的文件名。

25.  SITE(Site Parameters,站点参数)命令

说明:服务器使用SITE提供了某些服务特性,这些服务特性在系统中对文件传达而言是必要的,但又不是足够通用的可以包括到协议中作为命令的那些服务特性。这些服务的本质和他们的语法规范可以陈述在对HELPSITE命令的应答中。

用法:SITE<String><CRLF>

参数:String可以是任何串参数。

例子:

SendData "SITE chmod 646 mylifle.ziP" + “/r/n

注释:举例来说,使用如下语法,你就可以使用SITE来改变一个文件的权限属性。

SITE CHMOD<Attribute><Filename>

返回值如下(粗体表示成功):

l         200  命令成功。

l         202  命令还没有被实现,在此站点上是多余的。

l         500  语法错误,无法识别命令。这其中包括命令行过长之类的错误。

l         501  参数或变无中有语法错误。

l         530  无法登录。

26.  SMNT(Structure Mount,结构装配)命令

说明:允许用户装配另一个文件系统的数据结构而无需改变登录、帐号信息或传输参数。

用法:SMNT<Path><CRLF>

参数:Path是另一个文件数据系统的路径。

例子:

SendData "SMNT/users/johnsmith"&vbCrlf

返回值如下(粗体表示成功):

l         202  命令还没有被实现,在此站点上是多余的。

l         250  请求的文件操作没问题,已完成。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         500  语法错误,无法识别命令。这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         502  命令还没有被实现。

l         530  无法登录。

l         550  请求的操作无法执行,文件不可用(例如找不到文件,无访问权)。

27.  STAT(Status,状态)命令

说明:使一个状态响应以应答的形式通过控制连接发送出去

用法:STAT[<PathName>]<CRLF>

参数:PathName是服务器上的一个有效路径。

例子:

SendData "STAT /users/johnsmith/mylilE" + “/r/n

注释:STAT可以在文件传输(连同Telnet  IP和Synch信号一起——请参看RFC959的FTP Commands部分)期间发送,在此情况下服务器将响应操作中的进程状态,或者在两次文件传输之间发送。在后一种情况下,这条命令可以带一参数字段。如果指定了一个完整的路径名,STAT将类似于LIST命令,除了它的数据是通过控制连接传送的之外。如果指定的是一个局部路径,服务器将在响应中给出一份与指定项相关联的文件名或属性列表。如果不指定参数,服务器将返回有关此服务器FTP进程的常规状态信息,这其中包括当前所有传输参数的值和连接状态。

返回值如下(粗体表示成功):

l         211  系统状态,或系统的帮助应答。

l         212  目录状态。

l         213  文件状态。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         450  请求的文件操作无法执行,文件不可用(例如文件正忙)。

l         500  语法错误,无法识命令。这其中包括包令行过长类的错误。

l         501  参数或变元中有语法错误。

l         502  命令还没有被实现。

l         530  无法登录。

28.  STOR(Store,保存)命令

说明:让服务器接收一个来自数据连接的文件。

用法:STOR<FileName><CRLF>

参数:FileName是服务器站点上一个完全合格的路径和文件名。

例子:

SendData "STOR newfile.zip" + “/r/n

注释:Store命令让服务器接收通过数据连接传输而来的数据,并把数据存为务器站点上的文件。如果在路径名中指定的文件已经在服务站点上存在,则此文件的内容将被传输过来的数据所替代。如果在路径名中指定的文件尚未存在,将创建一个新文件。

返回值如下(值体表示成功):

l         110  重新启动标记应答

在此情况下,文本是精确的,而且不会留给特殊的实现处理,它必须读取:

MARK yyyy=mmmm

其中yyyy是用户进程的数据流标记,mmmm是服务器上的相应相标记(请注意标记和“=”之间的空格)。

l         125  数据连接已打开,传输启动。

l         150  文件状态一切正常,准备打开数据连接。

l         226  关闭数据连接,请求的文件操作已成功。

l         250  请求的文件操作正常进行,已完成。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         425  无法打开数据连接。

l         426  连接关闭,传输中止。

l         450  请求的文件操作无法执行,文件不可用(例如文件正忙)

l         451  请求的操作被中止,处理中发生本地错误。

l         452  请求的操作无法执行,系统的存储空间不足。

l         500  语法错误,无法识别命令。这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         504  命令中还没有实现该参数。

l         530  无法登录。

l         532  文件的存储需要帐号。

l         550  请求的操作无法执行,文件不可用(例如找不到文件,无访问权)。

l         551  请求的操作被中止,未知的页类型。

l         552  请求的文件操作被子中止,超过了分配的存储单元(对当前目录或数据集而言)。

l         553  请求的操作无法执行,不允许的文件名。

29.  STOU(Store Unique,存为唯一)命令

说明:让服务器准备接收一个文件,并指示服务器把这个文件用唯一的名称保存到目的目录中。

用法:STOU<CRLF>

参数:无。

例子:

SendData "STOU"&vbCrlf

注释:Store Unique命令和STOR所做的工作是基本一样的,只是前者在当前目录下生成的文件是以一个该目录中唯一的名称来创建的。250 Transfer Started响应中必须包括这个生成的名称。

返回值如下(粗体表示成功):

l         110  重新启动标记应答

在此情况下,文本是精确的,而且不会留给特殊的实现处理,它必须读取:

MARKyyyy=mmmm

其中yyyy是用户进程的数据流标记,mmmm是服务器上的相应标记(请注意标记和“=”之间的空格)。

l         125  数据连接已打开,传输启动。

l         150  文件状态正常,准备打开数据连接。

l         226  关闭数据连接,请求的文件操作已成功。

l         250  请求的文件操作没问题,已完成(该行中包括一个唯一的文件名)。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

l         425  无法打开数据连接。

l         426  连接关闭,传输中止。

l         450  请求的文件操作无法执行,文件不可用(例如文件正忙)。

l         451  请求的操作被中止,处理中发生本地错误。

l         452  请求的操作无法执行,系统的存储空间不足。

l         500  语法错误,无法识别命令。这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         504  命令中还没有实现该参数。

l         530  无法登录。

l         532  文件的存储需要帐号。

l         550  请求的操作无法执行,文件不可(例如找不到文件,无访问权)。

l         551  请求的操作作被中止,未知的页类型。

l         552  请求的文件操作被中止,超过了分配的存储单元(对当前目录或数据集而言)。

l         553请求的操作无法执行,存在不允许的文件名。

30.  STRU(File Structure,文件结构)命令

说明:指定传达数据的结构类型。

用法:STRU<Structure Type><CRLF>

参数:StructureType是如下ASCII字符的其中之一:

F——文件结构(默认值)

R——记录结构

P——页结构

有关使用非文件结构的信息请参看RFC959。

例子:

SendData "STRUR" + “/r/n

返回值如下(粗体表示成功):

l         200  命令成功。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答

l         500  语法错误,无法识别命令。这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         504  命令中还没有实现该参数。

l         530  无法登录。

31.  SYST(System,系统)命令

说明:SYST用于查明服务器上操作系统的类型。

用法SYST<CRLF>

例子:

SendData "SYST" + “/r/n

注释:按照推测,应答中的第一个单词是在Assigned Numbers文档[4]的当前版本中列出的某一个系统名称。但是,并不一定都能成功,新的系统每时每刻都在涌现。而公开的文档也许能跟上趟,也许不能。

返回值如下(粗体表示成功):

l                   215   NAME系统类型。NAME是来自Assigned Numbers文档中的一个正式的系统名称。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答

l         500  语法错误,无法识别命令。这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         502  命令还没有被实现。

32.  TYPE(Representation Type,表达类型)命令

说明:确定数据的传输方式。

用法:TYPE<Data Type Code><CRLF>

参数:Data type Code是一个(或几个)ASCII字符,它标识出一种数据表达类型。

例子:

‘—设置二进制模式

SendData "type I" + “/r/n

注释:最典型的情况就是使用TYPE命令在ASCII或二进制模式(Image,图像)之间切换。发送和接收任何类型的文件时都可以使用图像类型。ASCII类型只在传送文本时使用。

有几种类型要用到第二个参数。第一个参数由一个单独的ASCII字符表示,ASCII和EBCDIC的第二个Format参数也是如此;本地字节的第二个参数则是一个表示Byte大小的十进制整数。两个参数之间用<SP>(Space,即空格,ASCII代码为32)分隔开。

给类型分配如下代码:

A——ASCII*

E——EBCDIC*

I——Image(图像,传送二进制文件时用它)。

L<byte size>——Local byte  Byte size(本地字节,字节大小)

-------------------------------------

*——A和E类型的第二个Parameter要用到如下三个的其中一个:

N——Nonprint(非打印)

T——Telnet format effector(Telnet格式控制符)

C——Carriage Control(ASA)托架控制(美国国家标准)。

默认的表达类型是ASCII Nonprint。如果Format参数发生改变,后来只是第一个参数发生了改变,Format将随即返回到默认的Nonprint。

返回值如下(粗体表示成功):

l         200  命令成功。

l         421  服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答

l         500  语法错误,无法识别命令。这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         504  命令中还没有实现该参数。

l         530  无法登录。

命令:USER(User Name,用户名称)

说明:指定远程系统上的用户名称。和PASS命令一起使用来登录。

用法:USER<User><CRLF>

参数:UserName是FTP系统上已经注册的用户名称。

例子:

 

SendData "USER johns" + “/r/n

 

注释:在连接到一台FTP服务器的端口并接收到一个由代码220开头的行,表示服务器已经准备好用户向它发送USER和PASS命令以登录进此FTP服务器之后,紧跟着发送USER命令。

PASS命令应该紧跟着USER命令。

如果在此FTP服务器上有帐号,就可以指定自己的用户名和密码。如果想匿名登录,可以指定用户名为“Anonymous”,而用自己的电子邮件地址当密码。

在会话期间,可以随时发送USER和PASS命令,把控制权交给一个新用户。

返回值如下(粗体表示成功)

l         230  用户已经登录。

l         331  用户名正常,需要密码。

l         332  登录需要帐号。

l         421  服务不可用,关闭控制连接

如果某项服务获知自己即将关闭,会向所有命令做出这个应答

l         500  语法错误,无法识别命令。这其中包括命令行过长之类的错误。

l         501  参数或变元中有语法错误。

l         530  无法登录。

以上为大部分的FTP命令,如果想进行FTP高级编程,就必须掌握这些具体的FTP命令。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weiyuefei/article/details/51758288

智能推荐

揭开均线系统的神秘面纱_揭开极限编程的神秘面纱,重新探讨“ XP蒸馏”,第2部分...-程序员宅基地

文章浏览阅读496次。存档日期:2019年5月15日 | 首次发布:2002年9月10日 在本月的Demystifying Extreme Programming中 ,Roy Miller解释了成为XP团队的程序员意味着什么,以及六个程序员的实践如何特别适合这种情况。 虽然所有19种XP实践都很重要,但程序员实践对于团队开发软件至关重要 。 此内容不再被更新或维护。 全文以PDF格式“按原样”提供。 随着技..._解开均线系统的神秘面纱

centos7.5开启ssh服务-程序员宅基地

文章浏览阅读5k次,点赞2次,收藏15次。1,查看是否已安装openssh-server;指令:rpm -qa | grep ssh2,如果未安装,请先安装openssh-serveryum install openssh-server3,编辑ssh参数:vim /etc/ssh/sshd_config修改端口号允许root登录设置需要密码登录修改好后输入“:wqa”保存退出4,开启ss..._centos7.5开启ssh

【2020-11-02】分享一个爬虫小工具,提高你的工作效率_trillworks-程序员宅基地

文章浏览阅读1.2k次,点赞4次,收藏7次。文章目录前言二、地址https://curl.trillworks.com/三、用法3.1这里以有道翻译为例,右键链接>copy>copy as curl(bash)3.2 黏贴到上面的网站,右侧方框会自动填充requests请求总结前言我们在编写爬虫代码的时候,都需要去请求链接,有事还需要一连串的参数,这时候我们是不可能一个一个手打上去的,这次就分享一个快速解析请求的小工具二、地址https://curl.trillworks.com/三、用法3.1这里以有道翻译为例,右键._trillworks

C++——多项式拟合_c++ 多项式拟合-程序员宅基地

文章浏览阅读1.5w次,点赞16次,收藏88次。 C++——多项式拟合目标:利用C++对txt或者xml中的数据,进行高阶或低阶多项式拟合 为方便以后查找,代码以及详细资料已打包,并上传至云盘(链接:https://pan.baidu.com/s/1bvUBIoxv7Avxeq_Cz6xOZQ 密码:u9qe)打包的内容如下: ..._c++ 多项式拟合

农产品:菜鸟、京东、顺丰们争夺冷链物流的新战场?-程序员宅基地

文章浏览阅读204次。互联网时代,一切都有了新玩法。以吃为例,从古至今中国人对“吃”的热爱都没有变过,在现今如何吃的健康、营养为国人新追求,有机蔬菜、无农药水果成为时下新宠。同时,随着国内物流体系的完善,运输技术的提高,农产品正成为新风口。就在今年3月1日,由国家发改委牵头、24部委联合发布的《关于推动物流高质量发展促进形成强大国内市场的意见》中明确指出,要加强农产品物流骨干网络和冷链物流体系建设,发展如“生鲜电..._顺丰冷链物流基础设施落后

Android Studio项目结构详解_andriodstudio的构建在哪-程序员宅基地

文章浏览阅读6.8k次,点赞8次,收藏67次。Android Studio 是谷歌推出的一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。在IDEA的基础上,Android Studio 提供: 1.基于Gradle的构建支持。 2.Android 专属的重构和快速修复。 3. 提示工具以捕获性能、可用性、版本兼容性等问题。 4.支持ProGuard和应用签名。 5.基于模板的向导来生成常用的Android_andriodstudio的构建在哪

随便推点

Android性能优化工具_android 性能优化工具-程序员宅基地

文章浏览阅读1.4k次,点赞2次,收藏7次。CPU 性能分析器可以在APP运行时,实时检查应用的 CPU 使用率和线程活动,也可以检查记录的方法轨迹、函数轨迹和系统轨迹的详情。(1)Sample JAVA Methods不能采集耗时很短的方法,而Trace JAVA Methods可以采集耗时很短的方法;_android 性能优化工具

大学实训_软件毕设_Java入门实战_商场管理系统_Punrain_java为超市设计管理系统-程序员宅基地

文章浏览阅读5.2k次,点赞8次,收藏41次。需要 演示文档+数据库涉及+需求分析文档和完整源码的,可通过该链接下载https://download.csdn.net/download/Punrain/11980745_java为超市设计管理系统

Runtime-iOS运行时应用篇_initwithframe runtime拦截-程序员宅基地

文章浏览阅读151次。在上篇文章iOS运行时Runtime基础后,本篇将会总结Rutime的具体应用实例,结合其动态特性,Runtime在开发中的应用大致分为以下几个方面:Runtime应用.png相关文章:iOS运行时Runtime基础一、动态方法交换:Method Swizzling实现动态方法交换(Method Swizzling )是Runtime中最具盛名的应用场景,其原理是:通过Runtime获取到方法实现的地址,进而动态交换两个方法的功能。使用到关键方法如下://获取类方法的M.._initwithframe runtime拦截

2020-08-14_20200814_112325010.jpg-程序员宅基地

文章浏览阅读65次。SpringMvc解决跨域问题前言:弄的一个Mvc项目涉及到了跨域问题,以下是我整理的一些解决方法介绍: 跨站 HTTP 请求(Cross-site HTTP request)是指发起请求的资源所在域不同于该请求所指向资源所在的域的 HTTP 请求。比如说,域名A(http://xusong.example)的某 Web 应用程序中通过标签引入了域名B(http://xusong.foo)站点的某图片资源(http://xusong.foo/image.jpg),域名A的那 Web 应用会使浏览器发_20200814_112325010.jpg

阿里云不同账户下的ecs服务器迁移教程_阿里云两个账户的服务器能不能做镜像迁移-程序员宅基地

文章浏览阅读565次。服务器已购买并创建系统盘的情况下只能同步系统盘,数据盘无法同步。系统盘还未创建的可以同步系统盘和数据盘。4、镜像共享给你要迁移的阿里云服务器的账号上,不是登录账号,是账号ID(个人中心->安全设置->账号ID)3、使用最新的快照生成镜像,镜像是分区域的,华南一只能用华南一的镜像。4、在接收镜像的账号里查看镜像,注意选择正确的区域。2、要迁移的实例创建镜像,创建镜像基于快照。5、创建实例,选择镜像,还是要注意区域。1、先停机维护要迁移的服务器。6、选择共享镜像,更换即可。5、新服务器更换系统盘。_阿里云两个账户的服务器能不能做镜像迁移

Fluka 安装及 pydicom_安装 fluka 2023 g11-程序员宅基地

文章浏览阅读1.3k次。Fluka 安装及 pydicom 准备工作1. Fluka安装及配置2.Flair的安装3. Geoviewer的安装3.1 GeoViewer命令安装3.2 flair-geoviewer-x.x.x.src.rpm安装3.3 其他问题4. Rocks Centos6 安装Fluka 2.6版本出错问题5. 安装pydicom, numpy.6. Centos pip安装准备工作Fluka安装相对简单。首先下载Fluka,Flair,Geoviewer最新版本。例如:fluka-2011.2c_安装 fluka 2023 g11

推荐文章

热门文章

相关标签