本示例演示如何从FTP服务器检索文件列表。首先,我们创建一个实例org.apache.commons.net.ftp.FTPClient。连接到FTP服务器并使用您的用户名和密码登录。
返回当前工作目录中包含的文件名列表的listFiles()方法FTPClient。null如果无法获得列表。如果目录中没有文件名,则返回零长度数组。
package org.nhooo.example.commons.net;
import org.apache.commons.io.FileUtils;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import java.io.IOException;
public class FTPListDemo {
public static void main(String[] args) {
FTPClient client = new FTPClient();
try {
client.connect("ftp.example.org");
client.login("admin", "admin123**");
if (client.isConnected()) {
// 获取当前工作文件名列表
//目录。当找不到文件时,将有一个空数组
// 被退回。
String[] names = client.listNames();
for (String name : names) {
System.out.println("Name = " + name);
}
FTPFile[] ftpFiles = client.listFiles();
for (FTPFile ftpFile : ftpFiles) {
// 检查FTPFile是否为常规文件
if (ftpFile.getType() == FTPFile.FILE_TYPE) {
System.out.printf("FTPFile: %s; %s%n",
ftpFile.getName(),
FileUtils.byteCountToDisplaySize(ftpFile.getSize()));
}
}
}
client.logout();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
client.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}这是我们的代码的示例结果:
Name = . Name = .. Name = .data Name = example.html Name = Touch.dat FTPFile: .data; 1 KB FTPFile: examples.html; 1 bytes FTPFile: Touch.dat; 0 bytes
Maven依赖
<!-- http://repo1.maven.org/maven2/commons-net/commons-net/3.6/commons-net-3.6.jar --> <dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.6</version> </dependency> <!-- http://repo1.maven.org/maven2/commons-io/commons-io/2.6/commons-io-2.6.jar --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency>