如何从 FTP 服务器获取文件列表?
众所周知,FTP 是一种可靠的协议,用于通过 Internet 传输文件。虽然它不是一个安全协议,但所有数据都以明文形式传输。但它是足够可靠的协议,可以通过 Internet 将数据从发送方发送到接收方。
该代码讨论了使用以下过程获取您希望从 FTP 服务器上读取的所有文件的名称:
- 在Java中,我们将使用FTPClient对象从 FTP 服务器读取文件。需要导入类 'org.apache.commons.net.ftp.FTPClient' 来创建 FTPClient 的实例。
- FTPClient对象调用connect ()方法,以URL为参数,与之建立连接。
- 使用login () 方法发送凭据——用户名和密码。对于正确的凭据和成功的登录,返回 true 允许用户访问服务器上的文件。
- 登录成功后,使用listNames ()方法获取当前工作目录下所有文件的名称。返回的列表将是一个可以迭代以读取名称的数组。
- 由于登录成功,在读取文件名后需要一个logout ()。最后调用disconnect ()方法结束与连接的FTP服务器的关系。
// Java code to illustrate
// How to get a list of files from the FTPserver
import java.io.IOException;
import org.apache.commons.net.ftp.FTPClient;
public class MyFTPClass {
public static void main(String args[])
{
// Create an instance of FTPClient
FTPClient ftp = new FTPClient();
try {
// Establish a connection with the FTP URL
ftp.connect("ftp.test.com");
// Enter user details : user name and password
boolean isSuccess = ftp.login("user", "password");
if (isSuccess) {
// Fetch the list of names of the files. In case of no files an
// empty array is returned
String[] filesFTP = ftp.listNames();
int count = 1;
// Iterate on the returned list to obtain name of each file
for (String file : filesFTP) {
System.out.println("File " + count + " :" + file);
count++;
}
}
ftp.logout();
}
catch (IOException e) {
e.printStackTrace();
}
finally {
try {
ftp.disconnect();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
}