📜  如何从 FTP 服务器获取文件列表?

📅  最后修改于: 2022-05-13 01:54:43.233000             🧑  作者: Mango

如何从 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();
            }
        }
    }
}