Почему выбрасывает исключение ArrayIndexOutOfBoundsException?
Делаю FTP-client java (Spring boot), который выбирает самый последний файл. Но при выборке кидает исключение
Вопрос: В чем может быть проблема?
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 В чем может быть проблема?
код:
public static FTPFile lastFileModified(FTPFile[] files) {
// ПРОБЛЕМНЫЙ ФРАГМЕНТ, КИДАЕТ ИСКЛЮЧЕНИЕ!
Date lastMod = files[0].getTimestamp().getTime();
FTPFile choice = files[0];
for (FTPFile file : files) {
if (file.getTimestamp().getTime().after(lastMod)) {
choice = file;
lastMod = file.getTimestamp().getTime();
}
}
return choice;
}
Основной код:
public static void main(String[] args) throws IOException {
FTPClient client = new FTPClient();
try {
client.connect("ftp.dlptest.com");
client.login("dlpuser", "rNrKYTX9g7z3RgJRmxWuGHbeu");
if (client.isConnected()) {
System.out.println("успешно подключено");
}
FTPFile[] files = client.listFiles();
FTPFile lastFile = lastFileModified(files);
System.out.println(lastFile.getName());
FileOutputStream fileOutputStream = new FileOutputStream("C:/Users/xxx/Desktop/down/fileFromServer.msg");
boolean isSaved = client.retrieveFile("/" + lastFile.getName(), fileOutputStream);
if (isSaved) {
System.out.println("Успешно сохранен!");
}
fileOutputStream.flush();
fileOutputStream.close();
client.logout();
client.disconnect();
client.disconnect();
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
P.s Буду рад любым вашим советам
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
В чем может быть проблема?
Проблема в том, что в files ничего нет. По-моему, это достаточно очевидно из сообщения об ошибке: ... for length 0.
PS: Надеюсь, что параметры соединения в вопросе - не настоящие.