Почему выбрасывает исключение 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: Надеюсь, что параметры соединения в вопросе - не настоящие.

→ Ссылка