阅读量:1
要在Java中监听FTP新增文件,可以使用Apache Commons Net库中的FTPClient类。以下是一个示例代码片段,演示如何监听FTP服务器上的新增文件。
import org.apache.commons.net.ftp.FTPFile; import org.apache.commons.net.ftp.FTPClient; public class FTPFileListener { public static void main(String[] args) throws Exception { String server = "ftp.example.com"; int port = 21; String user = "username"; String password = "password"; FTPClient ftpClient = new FTPClient(); // 连接到FTP服务器 ftpClient.connect(server, port); ftpClient.login(user, password); // 设置被动模式 ftpClient.enterLocalPassiveMode(); // 监听指定目录上的新增文件 String directory = "/path/to/ftp/directory"; FTPFile[] files = ftpClient.listFiles(directory); for (FTPFile file : files) { System.out.println("Found file: " + file.getName()); } while (true) { FTPFile[] newFiles = ftpClient.listFiles(directory); for (FTPFile newFile : newFiles) { boolean found = false; // 检查新增文件是否已经存在 for (FTPFile file : files) { if (file.getName().equals(newFile.getName())) { found = true; break; } } // 如果新增文件不存在于已知文件列表中,则认为是新增文件 if (!found) { System.out.println("New file added: " + newFile.getName()); } } // 更新文件列表以检查新增文件 files = newFiles; // 每隔一段时间进行检查 Thread.sleep(5000); } } }
在上面的代码中,我们使用ftpClient.listFiles(directory)
方法来获取指定目录上的文件列表。然后,在一个无限循环中,我们定期检查文件列表以查找新增文件。如果发现了新增文件,我们就可以进行相应的处理。请根据实际情况调整代码中的FTP服务器地址、端口、用户名、密码和目录。