Hacer que el servidor FTP devuelva los archivos enumerados por marca de tiempo con Apache FTPClient

He escrito este código a continuación para conectarse a un servidor FTP remoto (vsftp en CentOS 6). (Por brevedad, el manejo de excepciones no se muestra aquí)

FTPClient ftpClient = new FTPClient();
ftpClient.setConnectTimeout(20000);
ftpClient.connect(serverip);
ftpClient.enterLocalPassiveMode();
ftpClient.login(username, password);

if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
    ftpClient.disconnect();
    throw new FTPConnectionClosedException("Unable to connect to FTP server...");
}

FTPFile[] filesList = ftpClient.listFiles();
for (FTPFile tmpFile : filesList) {
    if (tmpFile.isDirectory())
        continue;

    // processing the file
}

if (ftpClient.isConnected())
    ftpClient.disconnect();

Si hay 100 archivos en ese servidor FTP, estolistFiles() da la lista de nombres de archivos según el orden alfabético.

A.txt
B.txt
Z.txt
a.txt
z.txt

¿Hay alguna forma de obtener los archivos de acuerdo con el tiempo modificado? (es decir, los archivos más antiguos primero). EstalistFiles() usosLIST mando.¿Hay algún otro comando disponible para enumerar los archivos según la hora de modificación? Dado que este es un servidor Linux, ¿podemos enviar algunos comandos de Linux para lograr esto?

Ya he revisado la preguntaobtener el último archivo de ftp. El problema con este enfoque es que tenemos que ordenar los archivos usando unComparator luego cambie el nombre y muévalo a una carpeta diferente (para ponerlos en el orden de modificación). Si hay más de 1000 archivos, ¡ordenarlos se convertiría en una operación que requiere mucho tiempo!

Editar:
Y más aún, recuperar los archivos y ordenarlos tiene otro problema. No tieneseconds información cuandoftpFile.getTimestamp() es usado Es preciso solo en minutos.

Respuestas a la pregunta(1)

Su respuesta a la pregunta