JAVA 中不错的开源FTP组件:commons-net
第一步:引入jar到pom.xml、
<!-- https://mvnrepository.com/artifact/commons-net/commons-net -->
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.6</version>
</dependency>
第二步:demo代码示例
以下代码实现了,连接ftp,遍历ftp服务器上的目录结构
package com.dx.ftp; import java.io.IOException;
import java.net.MalformedURLException; import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply; /**
* Hello world!
*/
public class App {
public static void main(String[] args) throws IOException {
String hostname = "ftp1.linuxidc.com";
Integer port = 21;
String username = "ftp1.linuxidc.com";
String password = "www.linuxidc.com";
FTPClient ftpClient = new FTPClient(); // ftpClient.setControlEncoding("utf-8");
ftpClient.setControlEncoding("GB2312"); try {
System.out.println("connecting...ftp服务器:" + hostname + ":" + port);
ftpClient.connect(hostname, port); // 连接ftp服务器
ftpClient.login(username, password); // 登录ftp服务器
int replyCode = ftpClient.getReplyCode(); // 是否成功登录服务器
if (!FTPReply.isPositiveCompletion(replyCode)) {
System.out.println("connect failed...ftp服务器:" + hostname + ":" + port);
}
System.out.println("connect successfu...ftp服务器:" + hostname + ":" + port);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} ftpClient.enterLocalPassiveMode();
ftpClient.changeWorkingDirectory("/"); deepLoop(ftpClient, "/"); System.out.println("Hello World!");
} private static void deepLoop(FTPClient ftpClient, String dir) throws IOException {
FTPFile[] files = ftpClient.listFiles(dir);
for (FTPFile file : files) {
if (file.isDirectory()) {
if (!file.getName().startsWith(".")) {
System.out.println("directory ---------> " + dir + "/" + file.getName());
deepLoop(ftpClient, dir + "/" + file.getName());
}
} else if (file.isFile()) {
System.out.println("file ---------> " + dir + "/" + file.getName());
} else if (file.isSymbolicLink()) {
System.out.println("symboliclink---------> " + file.getName());
} else if (file.isUnknown()) {
System.out.println("unknown ---------> " + file.getName());
}
}
}
}
JAVA 中不错的开源FTP组件:commons-net的更多相关文章
- 应用于Java中的一个开源的表达式语言(Expression Language)
OGNL(英文全称:Object Graph Navigation Language,中文名:对象导航图语言)是应用于Java中的一个开源的表达式语言(Expression Language),它被集 ...
- 不错的开源FTP类库
socket开源ftp类库代码:http://netftp.codeplex.com/ 需要注意事项,如果以下代码出现乱码问题,可以设置其中的Encoding属性就可以. 用法示例: using Sy ...
- java中经常使用的Swing组件总结
1.按钮(Jbutton) Swing中的按钮是Jbutton,它是javax.swing.AbstracButton类的子类,swing中的按钮可以显示图像,并且可以将按钮设置为窗口的默认图标,而且 ...
- Java 基础 在Java中需要使用内存的组件
Java程序启动后作为一个进程运行在操作系统中,那么这个进程有哪些部分需要分配内存? 1 Java堆 Java堆用于存储Java对象,堆的大小在JVM启动时向操作系统一次性申请完成,通过-Xmx和-X ...
- .net 开源 FTP 组件 edtFTPnet
edtFTPnet官方网站:http://www.enterprisedt.com/products/edtftpnet/ 目前最新版本为2.2.3,下载后在bin目录中找到edtFTPnet.dll ...
- [android]__如何在studio中导入,使用开源的UI组件
前言 在编程开发中,我们对第三方的优质开源组件是十分依赖的,在很多时候,我们都会使用到他们.使用第三方开源组件能够给我们的编程开发带来很大的便利.今天以这篇文章记录关于在android项目中引用第三方 ...
- 在Java中调用Python
写在前面 在微服务架构大行其道的今天,对于将程序进行嵌套调用的做法其实并不可取,甚至显得有些愚蠢.当然,之所以要面对这个问题,或许是因为一些历史原因,或者仅仅是为了简单.恰好我在项目中就遇到了这个问题 ...
- Java中日志组件详解
avalon-logkit Java中日志组件详解 lanhy 发布于 2020-9-1 11:35 224浏览 0收藏 作为开发人员,我相信您对日志记录工具并不陌生. Java还具有功能强大且功能强 ...
- (转) JAVA中如何设置图片(图标)自适应Jlable等组件的大小
一.问题: 一个程序,组件上设置某个图片作为图标,因为的label(应该说是组件)已经设定了固定大小, 所以再打开一些大图片时,超过组件大小的部分没显示出来,而小图片又没填充完整个组件 二.解决这个问 ...
随机推荐
- Wingdings 2 符号编码对照表
http://blog.csdn.net/linux7985/article/details/5030754 符号 编码 HTML 代码 符号 编码 HTML 代码 ! ! " &q ...
- 使用Coding4Fun工具包
Coding4Fun是一款很受WP开发者喜爱的开源类库,对于开发者来说,Coding4Fun上手很简单.只要从CodePlex下载Coding4Fun工具包,下载完成后,解压文件到一个文件夹中,里面有 ...
- SQLCE使用
Windows Phone的本地数据库SQL Server CE是7.1版本即芒果更新的新特性,所以你要在应用程序中使用SQL Server CE数据库必须使用Windows Phone 7.1的AP ...
- sql 语句注意括号配对
- eclipse 中 import sun.misc.BASE64Decoder; 报错
from://http://blog.sina.com.cn/s/blog_48964b120101ahrf.html 在android做3DES加密功能时 eclipse 中 import sun. ...
- poj 3041(最大匹配问题)
http://poj.org/problem?id=3041 Asteroids Time Limit: 1000MS Memory Limit: 65536K Total Submissions ...
- Linux学习9-CentOS搭建nginx环境
前言 之前我们搭建网站的时候,把war包放到tomcat下就能运行起来了,为什么部署上线的时候,又用到了nginx呢? nginx可以做多台服务器的负载均衡,当用户非常少的时候,可以用一台服务直接部署 ...
- WebRTC 基于GCC的拥塞控制(下)
转自;http://blog.csdn.net/ljh081231/article/details/79152578 本文在文章[1]的基础上,从源代码实现角度对WebRTC的GCC算法进行分析.主要 ...
- mongodb 脚本操作
MO='mongo'$MO << EOFuse testdbdb.dropDatabase()show dbsexit;EOF
- Asp.Net Core获取当前上下文对象
HttpContext简介 .Net Core中的HttpContext上下文是个抽象类,命名空间为Microsoft.AspNetCore.Http 所在程序集 \netstandard2.0\Mi ...