ftp中ftpClient类的API
org.apache.commons.NET.ftp
Class FTPClient类FTPClient
java.lang.Object java.lang.Object继承
org.apache.commons.net.SocketClient org.apache.commons.net.SocketClient
org.apache.commons.net.ftp.FTP org.apache.commons.net.ftp.FTP
org.apache.commons.net.ftp.FTPClient org.apache.commons.Net.ftp.FTPClient
All Implemented Interfaces: 所有已实现的接口:
Direct Known Subclasses: 直接已知子类:
FTPHTTPClient , FTPSClient FTPHTTPClient , FTPSClient
public class FTPClient公共类FTPClient
implements Configurable实现了可配置
FTPClient encapsulates all the functionality necessary to store and retrieve files from an FTP server. FTPClient封装了所有必要的功能来存储和检索从FTP服务器上的文件。 This class takes care of all low level details of interacting with an FTP server and provides a convenient higher level interface.这个类负责所有与FTP服务器交互的底层细节,并提供了便捷的更高层次的接口。 As with all classes derived from SocketClient , you must first connect to the server with connect before doing anything, and finally disconnect after you're completely finished interacting with the server.正如来自所有类SocketClient ,您必须首先连接到与服务器connect做任何事之前,最后disconnect完成后,你完全与服务器交互。 Then you need to check the FTP reply code to see if the connection was successful.然后,你需要检查的FTP答复代码,看看是否连接成功。 For example:例如:
boolean error = false;布尔错误= 0;
try {尝试{
int reply;诠释答复;
ftp.connect("ftp.foobar.com"); ftp.connect(“ftp.foobar.com”);
System.out.println("Connected to " + server + "."); System.out.println(“连接到”+服务器+ ".");
System.out.print(ftp.getReplyString()); System.out.print(ftp.getReplyString());
// After connection attempt, you should check the reply code to verify / /连接尝试后,你应该检查代码以验证答复
// success. / /成功。
reply = ftp.getReplyCode();答复= ftp.getReplyCode();
if(!FTPReply.isPositiveCompletion(reply)) {如果(!FTPReply.isPositiveCompletion(回复)){
ftp.disconnect(); ftp.disconnect();
System.err.println("FTP server refused connection."); System.err.println(“FTP服务器拒绝连接。”);
System.exit(1); System.exit(1);
} }
... ... // transfer files / /传送文件
ftp.logout(); ftp.logout();
} catch(IOException e) { }捕捉(IOException异常五){
error = true;误差为真;
e.printStackTrace(); e.printStackTrace();
} finally {最后} {
if(ftp.isConnected()) {如果(ftp.isConnected()){
try {尝试{
ftp.disconnect(); ftp.disconnect();
} catch(IOException ioe) { }捕捉(IOException异常雇主组织){
// do nothing / /什么也不做
} }
} }
System.exit(error ? 1 : 0); System.exit(错误1:0?);
} }
Immediately after connecting is the only real time you need to check the reply code (because connect is of type void).连接后立即是唯一真正的时候你需要检查答复代码(因为是连接类型为void)。 The convention for all the FTP command methods in FTPClient is such that they either return a boolean value or some other value.对于所有的FTP FTPClient指挥方法的公约就是这样,他们要么返回一个布尔值或其他值。 The boolean methods return true on a successful completion reply from the FTP server and false on a reply resulting in an error condition or failure.该方法返回一个布尔从FTP服务器成功完成答辩,假假真真的错误条件中的一个或故障而导致的答复。 The methods returning a value other than boolean return a value containing the higher level data produced by the FTP command, or null if a reply resulted in an error condition or failure.该方法返回一个布尔值返回值比含有较高水平的FTP命令,或者为null,如果产生一个错误条件答复或故障导致其他数据。 If you want to access the exact FTP reply code causing a success or failure, you must call getReplyCode after a success or failure.如果您要访问的FTP的确切答复代码导致成功或失败,你必须调用getReplyCode后,成功或失败。
The default settings for FTPClient are for it to use FTP.ASCII_FILE_TYPE , FTP.NON_PRINT_TEXT_FORMAT , FTP.STREAM_TRANSFER_MODE , and FTP.FILE_STRUCTURE . FTPClient的默认设置是它使用FTP.ASCII_FILE_TYPE , FTP.NON_PRINT_TEXT_FORMAT , FTP.STREAM_TRANSFER_MODE和FTP.FILE_STRUCTURE 。 The only file types directly supported are FTP.ASCII_FILE_TYPE and FTP.BINARY_FILE_TYPE .唯一的文件直接支持的类型是FTP.ASCII_FILE_TYPE和FTP.BINARY_FILE_TYPE 。 Because there are at least 4 different EBCDIC encodings, we have opted not to provide direct support for EBCDIC.因为至少有4种不同的EBCDIC编码,我们还选择了不提供直接支持的EBCDIC。 To transfer EBCDIC and other unsupported file types you must create your own filter InputStreams and OutputStreams and wrap them around the streams returned or required by the FTPClient methods.为了转移EBCDIC和其他不支持的文件类型,你必须创建自己的过滤InputStreams和OutputStreams和总结他们周围的流退回或由FTPClient方法所需。 FTPClient uses the NetASCII filter streams to provide transparent handling of ASCII files. FTPClient使用NetASCII过滤器流提供ASCII文件透明处理。 We will consider incorporating EBCDIC support if there is enough demand.我们会考虑把EBCDIC码的支持,如果有足够的需求。
FTP.NON_PRINT_TEXT_FORMAT , FTP.STREAM_TRANSFER_MODE , and FTP.FILE_STRUCTURE are the only supported formats, transfer modes, and file structures. FTP.NON_PRINT_TEXT_FORMAT , FTP.STREAM_TRANSFER_MODE和FTP.FILE_STRUCTURE是唯一支持的格式,传输模式和文件结构。
Because the handling of sockets on different platforms can differ significantly, the FTPClient automatically issues a new PORT (or EPRT) command prior to every transfer requiring that the server connect to the client's data port.由于在不同平台上插座处理可以显着差异,在FTPClient自动发出一个新的端口(或EPRT)命令之前,每次传输要求的服务器连接到客户端的数据端口。 This ensures identical problem-free behavior on Windows, Unix, and Macintosh platforms.这将确保相同的Windows,Unix和Macintosh平台无故障的行为。 Additionally, it relieves programmers from having to issue the PORT (or EPRT) command themselves and dealing with platform dependent issues.此外,它解除不必发出端口(或EPRT)命令自己和与平台有关问题的程序员。
Additionally, for security purposes, all data connections to the client are verified to ensure that they originated from the intended party (host and port).此外,为了安全起见,所有的数据连接到客户端进行验证,以确保他们打算从党(主机和端口)起源。 If a data connection is initiated by an unexpected party, the command will close the socket and throw an IOException.如果一个数据连接是由党发起的一个意外,该命令将关闭套接字并抛出一个IOException异常。 You may disable this behavior with setRemoteVerificationEnabled() .您可以禁用此行为setRemoteVerificationEnabled()
You should keep in mind that the FTP server may choose to prematurely close a connection if the client has been idle for longer than a given time period (usually 900 seconds).你应该记住,在FTP服务器可以选择过早关闭连接,如果客户已超过给定的时间较长时期(通常为900秒)闲置。 The FTPClient class will detect a premature FTP server connection closing when it receives a FTPReply.SERVICE_NOT_AVAILABLE response to a command.将检测的FTPClient类FTP服务器连接过早关闭,当它收到FTPReply.SERVICE_NOT_AVAILABLE响应命令。 When that occurs, the FTP class method encountering that reply will throw an FTPConnectionClosedException . FTPConnectionClosedException is a subclass of IOException and therefore need not be caught separately, but if you are going to catch it separately, its catch block must appear before the more general IOException catch block.一旦这种情况发生时,FTP类方法遇到的答复将抛出一个FTPConnectionClosedException 。 FTPConnectionClosedException是一个子类IOException ,因此不必分别被捕获,但如果你要抓住它分开,它的catch块必须出现在更一般的IOException catch块。 When you encounter an FTPConnectionClosedException , you must disconnect the connection with disconnect() to properly clean up the system resources used by FTPClient.当你遇到一个FTPConnectionClosedException ,必须断开与连接disconnect()妥善清理,系统资源使用FTPClient。 Before disconnecting, you may check the last reply code and text with getReplyCode , getReplyString , and getReplyStrings .在断开,你可以检查代码和文本的最后答复与getReplyCode , getReplyString和getReplyStrings 。 You may avoid server disconnections while the client is idle by periodically sending NOOP commands to the server.您可能会避免服务器断开,而客户端闲置的空操作指令通过定期发送到服务器。
Rather than list it separately for each method, we mention here that every method communicating with the server and throwing an IOException can also throw a MalformedServerReplyException , which is a subclass of IOException.它不是单独列出每个方法,我们在这里提到的每个方法与服务器通信,并抛出一个IOException异常也可引发MalformedServerReplyException ,这是一个IOException异常子类。 A MalformedServerReplyException will be thrown when the reply received from the server deviates enough from the protocol specification that it cannot be interpreted in a useful manner despite attempts to be as lenient as possible.将抛出一个MalformedServerReplyException答复时,从服务器收到的偏离足够的协议规范,它不能在一个有用的方式解释尽管试图尽可能宽松。
Listing API Examples Both paged and unpaged examples of directory listings are available, as follows:上市API的两个例子的目录列表分页和无页数的范例,如下:
Unpaged (whole list) access, using a parser accessible by auto-detect:无页数(全名单)访问,使用分析器可经自动检测:
FTPClient f = new FTPClient(); FTPClient f =new FTPClient();
f.connect(server); f.connect(服务器);
f.login(username, password); f.login(用户名,密码);
FTPFile[] files = listFiles(directory); FTPFile []文件= listfiles <套件(目录);
Paged access, using a parser not accessible by auto-detect.分页访问,使用分析器无法访问的自动检测。 The class defined in the first parameter of initateListParsing should be derived from org.apache.commons.net.FTPFileEntryParser:在应该从org.apache.commons.net.FTPFileEntryParser派生initateListParsing第一个参数定义的类:
FTPClient f = new FTPClient(); FTPClient f =new FTPClient();
f.connect(server); f.connect(服务器);
f.login(username, password); f.login(用户名,密码);
FTPListParseEngine engine = FTPListParseEngine引擎=
f.initiateListParsing("com.whatever.YourOwnParser", directory); f.initiateListParsing(“com.whatever.YourOwnParser”,目录);
while (engine.hasNext()) {而(engine.hasNext()){
FTPFile[] files = engine.getNext(25); // "page size" you want FTPFile []文件= engine.getNext(25); / /“页面大小”你想要
//do whatever you want with these files, display them, etc. / /做你想做这些文件,显示它们,等
//expensive FTPFile objects not created until needed. / /昂贵FTPFile不创建对象,直到需要。
} }
Paged access, using a parser accessible by auto-detect:分页访问,使用分析器可经自动检测:
FTPClient f = new FTPClient(); FTPClient f =new FTPClient();
f.connect(server); f.connect(服务器);
f.login(username, password); f.login(用户名,密码);
FTPListParseEngine engine = f.initiateListParsing(directory); FTPListParseEngine engine = f.initiateListParsing(目录);
while (engine.hasNext()) {而(engine.hasNext()){
FTPFile[] files = engine.getNext(25); // "page size" you want FTPFile []文件= engine.getNext(25); / /“页面大小”你想要
//do whatever you want with these files, display them, etc. / /做你想做这些文件,显示它们,等
//expensive FTPFile objects not created until needed. / /昂贵FTPFile不创建对象,直到需要。
} }
For examples of using FTPClient on servers whose directory listings有关使用服务器上的目录清单FTPClient例子
· use languages other than English使用英语以外的语言
· use date formats other than the American English "standard" MM d yyyy使用日期格式“以外的美国英语”标准MM d yyyy
· are in different timezones and you need accurate timestamps for dependency checking as in Ant在不同的时区,你需要在蚁群依赖检查准确的时间戳
see FTPClientConfig .见FTPClientConfig 。
Author: 作者:
Daniel F. Savarese, Rory Winston丹尼尔楼Savarese,罗里温斯顿
See Also: 另见:
FTP , FTPConnectionClosedException , FTPFileEntryParser , FTPFileEntryParserFactory , DefaultFTPFileEntryParserFactory , FTPClientConfig , MalformedServerReplyException FTP , FTPConnectionClosedException , FTPFileEntryParser , FTPFileEntryParserFactory , DefaultFTPFileEntryParserFactory , FTPClientConfig , MalformedServerReplyException
Field Summary 字段摘要 |
|
static int |
ACTIVE_LOCAL_DATA_CONNECTION_MODE |
static int |
ACTIVE_REMOTE_DATA_CONNECTION_MODE |
static int |
PASSIVE_LOCAL_DATA_CONNECTION_MODE |
static int |
PASSIVE_REMOTE_DATA_CONNECTION_MODE |
Fields inherited from class org.apache.commons.net.ftp. FTP org.apache.commons.net.ftp类从继承的字段。 的FTP |
_commandSupport_ , _controlEncoding , _controlInput_ , _controlOutput_ , _newReplyString , _replyCode , _replyLines , _replyString , ASCII_FILE_TYPE , BINARY_FILE_TYPE , BLOCK_TRANSFER_MODE , CARRIAGE_CONTROL_TEXT_FORMAT , COMPRESSED_TRANSFER_MODE , DEFAULT_CONTROL_ENCODING , DEFAULT_DATA_PORT , DEFAULT_PORT , EBCDIC_FILE_TYPE , FILE_STRUCTURE , LOCAL_FILE_TYPE , NON_PRINT_TEXT_FORMAT , PAGE_STRUCTURE , RECORD_STRUCTURE , STREAM_TRANSFER_MODE , strictMultilineParsing , TELNET_TEXT_FORMAT |
Fields inherited from class org.apache.commons.net. SocketClient org.apache.commons.net类从继承的字段。 SocketClient |
_defaultPort_ , _input_ , _output_ , _serverSocketFactory_ , _socket_ , _socketFactory_ , _timeout_ , connectTimeout , NETASCII_EOL |
Constructor Summary 构造方法摘要 |
|
FTPClient () |
Method Summary 方法摘要 |
|
protected void |
_connectAction_ () |
protected Socket |
_openDataConnection_ (int command, String arg) |
boolean |
abort () |
boolean |
allocate (int bytes) |
boolean |
allocate (int bytes, int recordSize) |
boolean |
appendFile ( String remote, InputStream local) |
appendFileStream ( String remote) |
|
boolean |
changeToParentDirectory () |
boolean |
changeWorkingDirectory ( String pathname) |
boolean |
completePendingCommand () |
void |
configure ( FTPClientConfig config) |
boolean |
deleteFile ( String pathname) |
void |
disconnect () |
void |
enterLocalActiveMode () |
void |
enterLocalPassiveMode () |
boolean |
enterRemoteActiveMode ( InetAddress host, int port) |
boolean |
enterRemotePassiveMode () |
boolean |
features () |
int |
getBufferSize () |
int |
getDataConnectionMode () |
protected String |
getListArguments ( String pathname) |
boolean |
|
getModificationTime ( String pathname) |
|
getPassiveHost () |
|
int |
getPassivePort () |
long |
getRestartOffset () |
getStatus () |
|
getStatus ( String pathname) |
|
getSystemName () |
|
getSystemType () |
|
initiateListParsing () |
|
initiateListParsing ( String pathname) |
|
initiateListParsing ( String parserKey, String pathname) |
|
boolean |
isRemoteVerificationEnabled () |
boolean |
isUseEPSVwithIPv4 () |
FTPFile [] |
listFiles () |
FTPFile [] |
listFiles ( String pathname) |
FTPFile [] |
listFiles ( String pathname, FTPFileFilter filter) |
listHelp () |
|
listHelp ( String command) |
|
String [] |
listNames () |
String [] |
listNames ( String pathname) |
boolean |
login ( String username, String password) |
boolean |
login ( String username, String password, String account) |
boolean |
logout () |
boolean |
makeDirectory ( String pathname) |
printWorkingDirectory () |
|
boolean |
remoteAppend ( String filename) |
boolean |
remoteRetrieve ( String filename) |
boolean |
remoteStore ( String filename) |
boolean |
remoteStoreUnique () |
boolean |
remoteStoreUnique ( String filename) |
boolean |
removeDirectory ( String pathname) |
boolean |
rename ( String from, String to) |
boolean |
retrieveFile ( String remote, OutputStream local) |
retrieveFileStream ( String remote) |
|
boolean |
sendNoOp () |
boolean |
sendSiteCommand ( String arguments) |
void |
setActiveExternalIPAddress ( String ipAddress) |
void |
setActivePortRange (int minPort, int maxPort) |
void |
setBufferSize (int bufSize) |
void |
setDataTimeout (int timeout) |
boolean |
setFileStructure (int structure) |
boolean |
setFileTransferMode (int mode) |
boolean |
setFileType (int fileType) |
boolean |
setFileType (int fileType, int formatOrByteSize) |
void |
setListHiddenFiles (boolean listHiddenFiles) |
boolean |
setModificationTime ( String pathname, String timeval) |
void |
setParserFactory ( FTPFileEntryParserFactory parserFactory) |
void |
setRemoteVerificationEnabled (boolean enable) |
void |
setRestartOffset (long offset) |
void |
setUseEPSVwithIPv4 (boolean selected) |
boolean |
storeFile ( String remote, InputStream local) |
storeFileStream ( String remote) |
|
boolean |
storeUniqueFile ( InputStream local) |
boolean |
storeUniqueFile ( String remote, InputStream local) |
storeUniqueFileStream () |
|
storeUniqueFileStream ( String remote) |
|
boolean |
structureMount ( String pathname) |
Methods inherited from class org.apache.commons.net.ftp. FTP 从类继承的方法org.apache.commons.net.ftp。 FTP的 |
abor , acct , addProtocolCommandListener , allo , allo , appe , cdup , cwd , dele , eprt , epsv , feat , getControlEncoding , getReply , getReplyCode , getReplyString , getReplyStrings , help , help , isStrictMultilineParsing , list , list , mdtm , mfmt , mkd , mode , nlst , nlst , noop , pass , pasv , port , pwd , quit , rein , removeProtocolCommandListener , rest , retr , rmd , rnfr , rnto , sendCommand , sendCommand , sendCommand , sendCommand , setControlEncoding , setStrictMultilineParsing , site , smnt , stat , stat , stor , stou , stou , stru , syst , type , type , user |
Methods inherited from class org.apache.commons.net. SocketClient 从类继承的方法org.apache.commons.net。 SocketClient |
connect , connect , connect , connect , connect , connect , getConnectTimeout , getDefaultPort , getDefaultTimeout , getKeepAlive , getLocalAddress , getLocalPort , getRemoteAddress , getRemotePort , getServerSocketFactory , getSoLinger , getSoTimeout , getTcpNoDelay , isConnected , setConnectTimeout , setDefaultPort , setDefaultTimeout , setKeepAlive , setReceiveBufferSize , setSendBufferSize , setServerSocketFactory , setSocketFactory , setSoLinger , setSoTimeout , setTcpNoDelay , verifyRemote |
Methods inherited from class Java.lang. Object java.lang中的类继承的方法。 对象 |
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
ftp中ftpClient类的API的更多相关文章
- FTPClient类的API
org.apache.commons.NET.ftp Class FTPClient类FTPClient java.lang.Object java.lang.Object继承 org.apache. ...
- java中FILE类常用API介绍
- Visual C++中最常用的类与API函数
这篇文章能让初学者快速了解visual C++ MFC中常见的核心的类与函数,虽然全部看下来有点枯燥,但对初学者快速了解MFC的框架结构很有好处. 常用类 CArchive类:用于二进制保存档案 CB ...
- Android 编程 AMapLocationClientOption 类中的 setNeedAddress 方法用处 (高德地图 com.amap.api.location.AMapLocationClientOption 中的类)
最近在用高德地图来写Android App, 其中有一些 方法是不太理解的,这里写一下 对 高德地图 com.amap.api.location.AMapLocationClientOption ...
- 8.算法竞赛中的常用JAVA API :Calendar日期类
8.算法竞赛中的常用JAVA API :Calendar日期类 摘要 在蓝桥杯中有关于日期计算的问题,正好java中的Date类和Calendar类提供了对日期处理的一些方法.Date类大部分方法已经 ...
- 6.算法竞赛中的常用JAVA API :Math类(转载)
6.算法竞赛中的常用JAVA API :Math类 求最值 最小值 Math.min(int a, int b) Math.min(float a, float b) Math.min(double ...
- 算法竞赛中的常用JAVA API :大数类(转载)
5.算法竞赛中的常用JAVA API :大数类 摘要 java中的基础数据类型能存储的最大的二进制数是 2 ^ 63 - 1 对应的十进制数是9223372036854775807(long类型的最大 ...
- FTPClient 中 FTPClient.changeWorkingDirectory(filePath) 代码一直返回 false
FTP文件下载需要的jar包: commons-net-2.0.jar 有时可能还需要:jakarta-oro.jar 参考:FTPClient参考文档 这里记录下我碰到的问题: 刚开始我的账号和密 ...
- 使用Java 编写FTP中的长传文件和下载文件
实现FTP文件上传与下载可以通过以下两种种方式实现(不知道还有没有其他方式,),分别为:1.通过JDK自带的API实现:2.通过Apache提供的API是实现. 第一种方法:通过JDK自带的API实现 ...
随机推荐
- 22.struts2-拦截器.md
目录 1.执行的流程时序图 1.执行的流程时序图 回顾: Struts配置: * 通配符.动态方法调用 * 全局跳转配置.配置的默认值.常量配置 * Struts核心业务 * 请求数据的自动封装 (p ...
- 维护没有源代码的遗留 Java 项目
维护没有源代码的遗留 Java 项目 Give Those Sweets Some Love --> 有时你可能不得不修改一些只有 Jar 和 .class 的 Java 项目. 要修改 Jar ...
- 吴裕雄 python神经网络(6)
import randomimport numpy as npnp.random.randint(0,49,3) ##required libarariesimport tensorflow as t ...
- 十分钟搞定pandas
转至:http://www.cnblogs.com/chaosimple/p/4153083.html 本文是对pandas官方网站上<10 Minutes to pandas>的一个简单 ...
- BOS物流项目第十一天
教学计划 1.在realm中进行授权 2.使用shiro的方法注解方式权限控制 a. 在spring文件中配置开启shiro注解支持 b. 在Action方法上使用注解 3.使用shiro的标签进 ...
- Html----开头
Html开头 *<meta http-equiv='content-type' content='text/html;charset=utf-8'>*定义字符编码,这是必须有的 后另存为 ...
- hbase 调试各种报错
1.master is initializing 怎么都不知道怎么回事,直接从hbase 2.0 换到了 hbase 2.1 2.java.lang.ClassNotFoundException: o ...
- Hadoop详细安装步骤
hadoop安装:(分布式模式)参考地址:http://dblab.xmu.edu.cn/blog/install-hadoop/ http://dblab.xmu.edu.cn/blog/insta ...
- 问题:使用ajax跳转到新页面无效(浏览器Safari)
问题:使用ajax跳转到新页面无效(浏览器Safari) window.open("{% url "runtestinfo" %}") 但是使用loca ...
- 基于正则表达式用requests下载网页中的图片
在慕课网看了正则表达式和requests的课程后,为了加深学习记忆,决定简单记录. 实现步骤: 1.先打开你要下载的网页,查看源码找出图片位置 2.编写正则匹配图片url 3.保存图片到本地 图文步骤 ...