URL url = new URL("ftp://user:pass@ftp.example.com/thefolder/");
URLConnection connection = url.openConnection();
...
// List files in folder...
上記のようなものを使用して、フォルダー「thefolder」内のファイルのリストを取得する方法を知りたいと思っていましたか?
この元の質問に続いて、すべて機能していて見栄えの良いこの単純な FTP 接続をまとめました。/live/conf/ の場所にあるすべてのファイルを表示でき、それらすべてをローカルの /conf/ の場所にコピーします。
唯一の問題は、ファイルをコピーしているがコンテンツがないことです。それらはすべて 0KB で空です。
ファイルの内容ではなく、ファイル名をコピーしている明らかなものを誰でも見ることができますか?
try {
FTPClient ftp = new FTPClient();
ftp.connect("000.000.000.000");
ftp.login("USER", "PASSWORD");
ftp.enterLocalPassiveMode();
ftp.setFileType(FTP.BINARY_FILE_TYPE);
FTPFile[] files = ftp.listFiles("/live/conf/");
for (int i=0; i < files.length; i++) {
if (files[i].getName().contains(".csv")) {
String remoteFile1 = files[i].getName();
File downloadFile1 = new File("/var/local/import/conf/"+files[i].getName());
OutputStream outputStream1 = new BufferedOutputStream(new FileOutputStream(downloadFile1));
ftp.retrieveFile(remoteFile1, outputStream1);
outputStream1.close();
}
}
ftp.disconnect();
} catch (SocketException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}