使用的 是ftp4j
先来写一登录示例,然后根据此分别来说各种操作的示例代码:
Java代码
package test;
import it.sauronsoftware.ftp4j.FTPClient;
/**
* FTP操作测试
* @说明
* @author cuisuqiang
* @version 1.0
* @since
*/
public class Ftp4jTest {
public static void main(String[] args) {
try {
// 创建客户端
FTPClient client = new FTPClient();
// 不指定端口,则使用默认端口21
client.connect("192.168.1.122", 21);
// 用户登录
client.login("123", "123123");
// 打印地址信息
System.out.println(client);
} catch (Exception e) {
e.printStackTrace();
}
}
}
登录进行退出操作:
Java代码
// 安全退出
client.disconnect(true);
// 强制退出
client.disconnect(false);
获得当前文件夹路径:
Java代码
// 当前文件夹
String dir = client.currentDirectory();
System.out.println(dir);
创建目录
Java代码
// 创建目录
client.createDirectory("123");
切换文件夹路径,可以使用绝对路径或者是相对路径,相对路径就是相对与当前所在的路径:
Java代码
// 改变当前文件夹 绝对路径
// client.changeDirectory(dir + "/123");
// 改变当前文件夹 相对路径
client.changeDirectory("123");
// 当前文件夹
dir = client.currentDirectory();
System.out.println(dir);
返回上级目录
Java代码
client.changeDirectoryUp();
// 重新获得 当前文件夹
dir = client.currentDirectory();
System.out.println(dir);
重命名文件或文件夹
Java代码
client.rename("123", "456");
删除目录(不能删除非空目录) 绝对或相对路径
Java代码
client.deleteDirectory("456");
移动文件或文件夹
Java代码
client.rename("readme.txt", dir + "/456/readme.txt");
删除文件
Java代码
client.deleteFile(dir + "/456/readme.txt");
罗列当前目录下的文件和文件的修改日期,注意不要操作 . 和 .. 文件
Java代码
// 浏览文件
FTPFile[] list = client.list();
// 使用通配浏览文件
// FTPFile[] list = client.list("*.txt");
// 显示文件或文件夹的修改时间 你不能获得 . 或 .. 的修改日期,否则Permission denied
for(FTPFile f : list){
if(!f.getName().equals(".") && !f.getName().equals("..")){
System.out.print(f.getName() + "\t");
System.out.println(client.modifiedDate(f.getName()));
}
}
下载文件
Java代码
File file = new File("C:\\localFile.txt");
client.download("remoteFile.txt", file);
上传文件到当前目录
Java代码
client.upload(file);
监听文件传输状态
创建一个实现FTPDataTransferListener接口的类:
Java代码
/**
* 监听文件传输的状态,上传下载时最后一个参数
* @说明
* @author cuisuqiang
* @version 1.0
* @since
*/
class MyTransferListener implements {
// 文件开始上传或下载时触发
public void started() {
System.out.println("started");
}
// 显示已经传输的字节数
public void transferred(int length) {
System.out.println(length);
}
// 文件传输完成时,触发
public void completed() {
System.out.println("completed");
}
// 传输放弃时触发
public void aborted() {
System.out.println("aborted");
}
// 传输失败时触发
public void failed() {
System.out.println("failed");
}
}
然后在上传或下载时增加一个参数即可,例如上传时:
Java代码
client.upload(file, new MyTransferListener());
/**
* 判断当前为文件还是目录
*
* @param client
* FTP客户端对象
* @param dir
* 文件或目录
* @return -1、文件或目录不存在 0、文件 1、目录
* @throws Exception
*/
private static int getFileType(FTPClient client, String dir)
throws Exception {
FTPFile[] files = null;
try {
files = client.list(dir);
} catch (Exception e) {
return -1;
}
if (files.length > 1) {
return FTPFile.TYPE_DIRECTORY;
} else if (files.length == 1) {
FTPFile f = files[0];
if (f.getType() == FTPFile.TYPE_DIRECTORY) {
return FTPFile.TYPE_DIRECTORY;
}
String path = dir + "/" + f.getName();
try {
int len = client.list(path).length;
if (len == 1) {
return FTPFile.TYPE_DIRECTORY;
} else {
return FTPFile.TYPE_FILE;
}
} catch (Exception e) {
return FTPFile.TYPE_FILE;
}
} else {
try {
client.changeDirectory(dir);
client.changeDirectoryUp();
return FTPFile.TYPE_DIRECTORY;
} catch (Exception e) {
return -1;
}
}
}
分享到:
相关推荐
java 连接 FTP 文件操作(上传,下载,删除,复制
JAVA FTP 文件传输 服务端 客户端JAVA FTP 文件传输 服务端 客户端JAVA FTP 文件传输 服务端 客户端
Java实现的FTP连接与数据浏览程序.rar Java实现的放大镜效果附有源文件.rar Java实现的点对点短消息发送协议(smpp)开发包源码.rar Java实现的视频播放程序源码.rar Java实现移动的遮照效果.rar JAVA实现超级玛丽.zip...
Java实现的FTP连接与数据浏览程序.rar Java实现的放大镜效果附有源文件.rar Java实现的点对点短消息发送协议(smpp)开发包源码.rar Java实现的视频播放程序源码.rar Java实现移动的遮照效果.rar JAVA实现超级玛丽.zip...
读取文件、操作文件、删除文件、移动文件(文件改名)等一系列操作,只要导入依赖.txt里面的依赖,就可以直接使用,test类用来快速使用,提示都给足了,ftp的一系列操作经过测试没有任何问题。有不懂的直接问我。 ...
java 通过FTP实现文件的上传、修改文件名、移动文件功能; 注意:请在服务器上配置好FTP服务;
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能。可以将ftp4j嵌到你的Java应用中,来传输文件(包括上传和下载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp...
Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 String serverAddr=jtfServer.getText(); //得到服务器地址 ...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能。可以将ftp4j嵌到你的Java应用中,来传输文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。...
百度云盘分享 ... Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 String serverAddr=jtfServer.getText();...
Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 String serverAddr=jtfServer.getText(); //得到服务器地址 ...
Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 String serverAddr=jtfServer.getText(); //得到服务器...
Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 String serverAddr=jtfServer.getText(); //得到服务器...
Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 String serverAddr=jtfServer.getText(); //得到服务器...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
可支持FastDFS存储、FTP存储、天翼云存储、华为云存储(OBS)、阿里云存储(OSS)、移动云。可通过配置自动切换存储类型。本微服务支持临时文件24小时自动删除、文件下载。本资源也包含了Github更新地址
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...