JavaでFTPのファイル追加を監視する方法

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サーバーアドレス、ポート、ユーザー名、パスワード、ディレクトリは実際の設定に合わせてコード上で調整すること。

bannerAds