本示例演示如何从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>