public class Ftp extends AbstractFtp
常见搭建ftp的工具有 1、filezila server ;根目录一般都是空 2、linux vsftpd ; 使用的 系统用户的目录,这里往往都是不是根目录,如:/home/ftpuser/ftp
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_PORT
默认端口
|
DEFAULT_CHARSET, ftpConfig
Constructor and Description |
---|
Ftp(org.apache.commons.net.ftp.FTPClient client)
构造
|
Ftp(FtpConfig config,
FtpMode mode)
构造
|
Ftp(String host)
构造,匿名登录
|
Ftp(String host,
int port)
构造,匿名登录
|
Ftp(String host,
int port,
String user,
String password)
构造
|
Ftp(String host,
int port,
String user,
String password,
Charset charset)
构造
|
Ftp(String host,
int port,
String user,
String password,
Charset charset,
String serverLanguageCode,
String systemKey)
构造
|
Ftp(String host,
int port,
String user,
String password,
Charset charset,
String serverLanguageCode,
String systemKey,
FtpMode mode)
构造
|
Modifier and Type | Method and Description |
---|---|
boolean |
cd(String directory)
改变目录
|
void |
close() |
boolean |
delDir(String dirPath)
删除文件夹及其文件夹下的所有文件
|
boolean |
delFile(String path)
删除指定目录下的指定文件
|
void |
download(String path,
File outFile)
下载文件
|
void |
download(String path,
String fileName,
File outFile)
下载文件
|
void |
download(String path,
String fileName,
OutputStream out)
下载文件到输出流
|
void |
download(String path,
String fileName,
OutputStream out,
Charset fileNameCharset)
下载文件到输出流
|
boolean |
existFile(String path)
判断ftp服务器目录内是否还有子元素(目录或文件)
|
org.apache.commons.net.ftp.FTPClient |
getClient()
获取FTPClient客户端对象
|
Ftp |
init()
初始化连接
|
Ftp |
init(FtpConfig config,
FtpMode mode)
初始化连接
|
Ftp |
init(String host,
int port,
String user,
String password)
初始化连接
|
Ftp |
init(String host,
int port,
String user,
String password,
FtpMode mode)
初始化连接
|
boolean |
isBackToPwd()
是否执行完操作返回当前目录
|
List<String> |
ls(String path)
遍历某个目录下所有文件和目录,不会递归遍历
|
org.apache.commons.net.ftp.FTPFile[] |
lsFiles(String path)
遍历某个目录下所有文件和目录,不会递归遍历
|
List<org.apache.commons.net.ftp.FTPFile> |
lsFiles(String path,
Filter<org.apache.commons.net.ftp.FTPFile> filter)
遍历某个目录下所有文件和目录,不会递归遍历
此方法自动过滤"." |
boolean |
mkdir(String dir)
在当前远程目录(工作目录)下创建新的目录
|
String |
pwd()
远程当前目录
|
Ftp |
reconnectIfTimeout()
如果连接超时的话,重新进行连接 经测试,当连接超时时,client.isConnected()仍然返回ture,无法判断是否连接超时 因此,通过发送pwd命令的方式,检查连接是否超时
|
void |
recursiveDownloadFolder(String sourcePath,
File destDir)
递归下载FTP服务器上文件到本地(文件目录和服务器同步)
|
Ftp |
setBackToPwd(boolean backToPwd)
设置执行完操作是否返回当前目录
|
Ftp |
setMode(FtpMode mode)
设置FTP连接模式,可选主动和被动模式
|
int |
stat(String path)
获取服务端目录状态。
|
boolean |
upload(String destPath,
File file)
上传文件到指定目录,可选:
1. destPath为null或""上传到当前路径
2. destPath为相对路径则相对于当前路径的子路径
3. destPath为绝对路径则上传到此路径
|
boolean |
upload(String destPath,
String fileName,
File file)
上传文件到指定目录,可选:
1. destPath为null或""上传到当前路径
2. destPath为相对路径则相对于当前路径的子路径
3. destPath为绝对路径则上传到此路径
|
boolean |
upload(String destPath,
String fileName,
InputStream fileStream)
上传文件到指定目录,可选:
1. destPath为null或""上传到当前路径
2. destPath为相对路径则相对于当前路径的子路径
3. destPath为绝对路径则上传到此路径
|
void |
uploadFileOrDirectory(String remotePath,
File uploadFile)
递归上传文件(支持目录)
上传时,如果uploadFile为目录,只复制目录下所有目录和文件到目标路径下,并不会复制目录本身 上传时,自动创建父级目录 |
public static final int DEFAULT_PORT
public Ftp(String host)
host
- 域名或IPpublic Ftp(String host, int port)
host
- 域名或IPport
- 端口public Ftp(String host, int port, String user, String password)
host
- 域名或IPport
- 端口user
- 用户名password
- 密码public Ftp(String host, int port, String user, String password, Charset charset)
host
- 域名或IPport
- 端口user
- 用户名password
- 密码charset
- 编码public Ftp(String host, int port, String user, String password, Charset charset, String serverLanguageCode, String systemKey)
host
- 域名或IPport
- 端口user
- 用户名password
- 密码charset
- 编码serverLanguageCode
- 服务器语言 例如:zhsystemKey
- 服务器标识 例如:org.apache.commons.net.ftp.FTPClientConfig.SYST_NTpublic Ftp(String host, int port, String user, String password, Charset charset, String serverLanguageCode, String systemKey, FtpMode mode)
host
- 域名或IPport
- 端口user
- 用户名password
- 密码charset
- 编码serverLanguageCode
- 服务器语言systemKey
- 系统关键字mode
- 模式public Ftp(org.apache.commons.net.ftp.FTPClient client)
client
- 自定义实例化好的FTPClient
public Ftp init()
public Ftp init(String host, int port, String user, String password)
host
- 域名或IPport
- 端口user
- 用户名password
- 密码public Ftp init(String host, int port, String user, String password, FtpMode mode)
host
- 域名或IPport
- 端口user
- 用户名password
- 密码mode
- 模式public Ftp init(FtpConfig config, FtpMode mode)
config
- FTP配置mode
- 模式public Ftp setMode(FtpMode mode)
mode
- 模式枚举public Ftp setBackToPwd(boolean backToPwd)
backToPwd
- 执行完操作是否返回当前目录public boolean isBackToPwd()
public Ftp reconnectIfTimeout()
reconnectIfTimeout
in class AbstractFtp
public boolean cd(String directory)
cd
in class AbstractFtp
directory
- 目录public String pwd()
pwd
in class AbstractFtp
public List<String> ls(String path)
AbstractFtp
ls
in class AbstractFtp
path
- 需要遍历的目录public List<org.apache.commons.net.ftp.FTPFile> lsFiles(String path, Filter<org.apache.commons.net.ftp.FTPFile> filter)
path
- 目录filter
- 过滤器,null表示不过滤,默认去掉"."和".."两种目录public org.apache.commons.net.ftp.FTPFile[] lsFiles(String path) throws FtpException, IORuntimeException
path
- 目录,如果目录不存在,抛出异常FtpException
- 路径不存在IORuntimeException
- IO异常public boolean mkdir(String dir) throws IORuntimeException
AbstractFtp
mkdir
in class AbstractFtp
dir
- 目录名IORuntimeException
public int stat(String path) throws IORuntimeException
path
- 路径IORuntimeException
public boolean existFile(String path) throws IORuntimeException
path
- 文件路径IORuntimeException
- IO异常public boolean delFile(String path) throws IORuntimeException
AbstractFtp
delFile
in class AbstractFtp
path
- 目录路径IORuntimeException
public boolean delDir(String dirPath) throws IORuntimeException
AbstractFtp
delDir
in class AbstractFtp
dirPath
- 文件夹路径IORuntimeException
public boolean upload(String destPath, File file)
1. destPath为null或""上传到当前路径 2. destPath为相对路径则相对于当前路径的子路径 3. destPath为绝对路径则上传到此路径
upload
in class AbstractFtp
destPath
- 服务端路径,可以为null
或者相对路径或绝对路径file
- 文件public boolean upload(String destPath, String fileName, File file) throws IORuntimeException
1. destPath为null或""上传到当前路径 2. destPath为相对路径则相对于当前路径的子路径 3. destPath为绝对路径则上传到此路径
file
- 文件destPath
- 服务端路径,可以为null
或者相对路径或绝对路径fileName
- 自定义在服务端保存的文件名IORuntimeException
- IO异常public boolean upload(String destPath, String fileName, InputStream fileStream) throws IORuntimeException
1. destPath为null或""上传到当前路径 2. destPath为相对路径则相对于当前路径的子路径 3. destPath为绝对路径则上传到此路径
destPath
- 服务端路径,可以为null
或者相对路径或绝对路径fileName
- 文件名fileStream
- 文件流IORuntimeException
- IO异常public void uploadFileOrDirectory(String remotePath, File uploadFile)
remotePath
- 目录路径uploadFile
- 上传文件或目录public void download(String path, File outFile)
download
in class AbstractFtp
path
- 文件路径,包含文件名outFile
- 输出文件或目录,当为目录时,使用服务端的文件名public void recursiveDownloadFolder(String sourcePath, File destDir)
recursiveDownloadFolder
in class AbstractFtp
sourcePath
- ftp服务器目录destDir
- 本地目录public void download(String path, String fileName, File outFile) throws IORuntimeException
path
- 文件所在路径(远程目录),不包含文件名fileName
- 文件名outFile
- 输出文件或目录,当为目录时使用服务端文件名IORuntimeException
- IO异常public void download(String path, String fileName, OutputStream out)
path
- 文件路径fileName
- 文件名out
- 输出位置public void download(String path, String fileName, OutputStream out, Charset fileNameCharset) throws IORuntimeException
path
- 服务端的文件路径fileName
- 服务端的文件名out
- 输出流,下载的文件写出到这个流中fileNameCharset
- 文件名编码,通过此编码转换文件名编码为ISO8859-1IORuntimeException
- IO异常public org.apache.commons.net.ftp.FTPClient getClient()
FTPClient
public void close() throws IOException
IOException
Copyright © 2024. All rights reserved.