passive net listar ftpclient commons archivos java ftp

java - net - Obtenga la marca de tiempo de los elementos de la lista de archivos FTP



listar archivos ftp java (3)

En Java, estoy intentando iniciar sesión en un servidor FTP y encontrar todos los archivos más nuevos que x para recuperarlos.

Actualmente tengo un flujo de entrada que está leyendo en el contenido del directorio e imprimiéndolos, línea por línea, lo que está muy bien, pero el resultado es bastante vago ... parece que ...

-rw------- 1 vuser 4773 Jun 10 2008 .bash_history -rw-r--r-- 1 vuser 1012 Dec 9 2007 .bashrc lrwxrwxrwx 1 root 7 Dec 9 2007 .profile -> .bashrc drwx------ 2 vuser 4096 Jan 30 01:08 .spamassassin drwxr-xr-x 2 vuser 4096 Dec 9 2007 backup.upgrade_3_7 dr-xr-xr-x 2 root 4096 Dec 10 2007 bin

etc ...

sin embargo, necesito la marca de tiempo real en segundos o milisegundos para poder determinar si quiero ese archivo o no.

¿Supongo que esto tiene algo que ver con la configuración del servidor FTP? pero estoy algo perplejo.


Desafortunadamente, el resultado de una lista de directorio de servidores FTP no es obligatorio por el estándar. De hecho, se describe explícitamente como no destinado para el análisis de máquina. El formato variará bastante entre servidores en algunos sistemas operativos.

RFC 3659 describe algunas extensiones del estándar FTP que incluyen el comando "MDTM" para consultar los tiempos de modificación. Si tiene suerte, los servidores con los que desea hablar han implementado esta extensión.


Tal vez valga la pena echarle un vistazo a la API de Jakarta Commons Net, que tiene funcionalidad de FTP.

Creo que con esto puedes usar los archivos de lista que te darán objetos de archivo en los que puedes hacer getTimeStamp , entonces deberías poder obtener solo los que necesitas.


getTimestamp() le proporciona la última hora de modificación del archivo. Si está tratando de obtener la hora en que el archivo se cargó en el servidor, eso no funcionaría. Intento hacer algo similar, quiero obtener todos los archivos que fueron cargados después de X veces. No pude encontrar una manera clara de hacer esto sin hacer realmente un ls y analizarlo.