import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; import java.io.IOException; public class FtpExample { public static void main(String[] args) { // 创建FTPClient对象 FTPClient ftpClient = new FTPClient(); try { // 连接到FTP服务器 ftpClient.connect("ftp.example.com"); // 登录到FTP服务器 ftpClient.login("username", "password"); // 切换到指定目录 ftpClient.changeWorkingDirectory("/path/to/directory"); // 列出当前目录下的文件和文件夹 FTPFile[] files = ftpClient.listFiles(); for (FTPFile file : files) { System.out.println("File: " + file.getName()); } // 下载文件 String remoteFilePath = "/path/to/remote/file"; String localFilePath = "/path/to/local/file"; ftpClient.retrieveFile(remoteFilePath, new FileOutputStream(localFilePath)); // 上传文件 String localFile = "/path/to/local/file"; String remoteFile = "/path/to/remote/file"; ftpClient.storeFile(remoteFile, new FileInputStream(localFile)); // 退出并断开连接 ftpClient.logout(); ftpClient.disconnect(); } catch (IOException e) { e.printStackTrace(); } finally { if (ftpClient.isConnected()) { try { ftpClient.disconnect(); } catch (IOException e) { e.printStackTrace(); } } } } }
在这个示例中,我们首先创建了一个FTPClient
对象,然后使用connect
方法连接到FTP服务器,我们使用login
方法登录到服务器,之后,我们使用changeWorkingDirectory
方法切换到指定的目录,并使用listFiles
方法列出当前目录下的文件和文件夹。
我们使用retrieveFile
方法下载一个文件,并将其保存到本地,同样,我们使用storeFile
方法上传一个本地文件到服务器,我们使用logout
方法退出FTP服务器,并使用disconnect
方法断开连接。