使用的 是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.net.FTPURLConnection`类来实现FTP连接。但需要注意的是,这个类的功能相对有限,因此在实际开发中,我们通常会使用第三方库,如Apache的Commons Net库,它提供了更强大且易于使用的FTP功能。 **...
这通常通过FTP的REST(Restart from a Specific Point)命令实现,客户端发送REST + 位置,服务器会将文件指针移动到指定位置。 3. **Java中的FTP库**: 在Java中,我们可以使用`java.net`包中的`Socket`类实现...
FTP(File Transfer Protocol)是一种广泛使用的网络协议,用于在互联网上进行文件传输。断点续传是FTP的一个重要特性,允许用户在文件...了解这些知识点将使你能够高效地实现在Java环境中进行FTP文件的断点续传操作。
Java实现的FTP图形化客户端是一种基于Java编程语言的软件应用,用于通过图形用户界面(GUI)与FTP(文件传输协议)服务器进行交互。这个毕业设计作品展示了开发者在掌握Java编程和网络通信技术上的实践能力。FTP是...
FTP(File Transfer Protocol)是一种广泛使用的网络协议,用于在互联网上进行文件传输。...通过学习和熟练使用`ftp4j`,你可以实现文件的上传、下载、移动、复制和删除等操作,满足各种FTP相关的业务需求。
Java实现的FTP软件是一种用于在计算机之间传输文件的客户端-服务器(CS)应用程序。FTP,全称为文件传输协议,是互联网上广泛使用的标准协议之一,允许用户从远程服务器上下载文件或向服务器上传文件。本课程设计的...
在Java编程中,实现FTP客户端和服务端的功能是一项常见的任务。本文将深入探讨如何使用Java来构建FTP服务端和客户端,以及相关的技术要点。 **FTP服务端** 1. **Apache MINA或Jetty FTPServer**: 在Java中,可以...
在这个"ftp.rar"压缩包中,我们关注的是一个用Java语言实现的FTP客户端。Java是一种跨平台的编程语言,它提供了丰富的库和API,使得开发FTP客户端成为可能。 FTP客户端是允许用户连接到FTP服务器并执行各种操作,...
Java FTP客户端是用Java语言实现的能够连接到FTP服务器并执行各种文件操作的程序。"J-FTP"是这样的一个客户端,它提供了友好的用户界面和丰富的功能,方便开发者或普通用户在Java环境中与FTP服务器交互。 在Java中...
Java FTP客户端库ftp4j是Java开发者用于实现FTP(文件传输协议)功能的强大工具。FTP是一种广泛用于在网络上上传、下载文件的标准协议。FTP4j是一个开源的Java库,由Sergio Bossa开发,它提供了丰富的API,使开发者...
总之,Java FTP上传工具包是Android开发中实现FTP功能的理想选择,尤其对于需要频繁进行文件交换的应用来说,其断点续传特性大大提升了用户体验。开发者应熟悉Java FTP API,理解其工作原理,以便有效地利用这个工具...
"Java实现的FTP连接与数据浏览程序Java实用源码整理learns"是一个资源包,它包含了实现这些功能的Java源代码示例,对于学习和理解Java FTP编程非常有帮助。 FTP连接主要涉及到Java的`java.net`和`javax.net`包,...
Java实现的FTP连接与数据浏览程序.rar Java实现的放大镜效果附有源文件.rar Java实现的点对点短消息发送协议(smpp)开发包源码.rar Java实现的视频播放程序源码.rar Java实现移动的遮照效果.rar JAVA实现超级玛丽.zip...
为了方便开发者在Java中实现FTP功能,有许多第三方类库被开发出来,其中之一便是"JAVAFTP开发第三方类库",可能指的是像EDTFTPj这样的库。在本篇中,我们将深入探讨这个库以及它在Java FTP开发中的应用。 EDTFTPj是...
本篇文章将详细探讨如何使用Java通过SFTP模式实现FTP的文件上传、下载和删除功能。 一、SFTP简介 SFTP与传统的FTP不同,FTP在明文传输数据,存在安全隐患,而SFTP则利用SSH提供的加密机制,确保数据在传输过程中的...
在这个"FTP.rar_ftp_ftp_java"的压缩包中,我们可以推测它包含了一个使用Java编程语言开发的FTP客户端应用,该应用可能是用Jbuilder这个集成开发环境(IDE)编写的。Jbuilder是Borland公司(后来被Embarcadero ...
本项目是一个基于Kotlin和Java开发的移动FTP系统,支持在Android设备上进行FTP客户端和服务器的实现。客户端和服务器均支持文件和文件夹的传输,并提供了用户认证、命令处理、数据传输等功能。 ## 项目的主要特性和...
在Android平台上,FTP(File Transfer Protocol)是一种常用的技术,用于在设备之间进行文件的上传和下载。...理解并掌握FTP协议及其在Android中的实现,对于提升移动应用的功能性和用户体验具有重要意义。
JAVA代码实现远程操作服务器文件是指使用JAVA语言实现远程操作服务器文件的功能,实现FTP,共享文件夹操作。该功能可以实现远程服务器文件的上传、下载、复制、移动、删除等操作。 description: 该实现使用了...
Java实现的FTP连接与数据浏览程序.rar Java实现的放大镜效果附有源文件.rar Java实现的点对点短消息发送协议(smpp)开发包源码.rar Java实现的视频播放程序源码.rar Java实现移动的遮照效果.rar JAVA实现超级玛丽.zip...