2009-01-30 8 views
4

En Java, j'essaie de me connecter à un serveur FTP et de trouver tous les fichiers plus récents que x pour les récupérer.Obtenir l'horodatage des éléments de la liste de fichiers FTP

Actuellement, j'ai un flux d'entrée qui lit dans le contenu du répertoire et les imprime, ligne par ligne, ce qui est très bien, mais la sortie est assez vague ... il ressemble à ceci ...

-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 ...

cependant, je dois l'horodatage réel en secondes ou en millisecondes afin que je puisse déterminer si je veux ce fichier ou non.

Je suppose que cela a quelque chose à voir avec la configuration du serveur FTP? mais je suis un peu perplexe.

Répondre

4

Peut-être intéressant de jeter un oeil à l'API Jakarta Commons Net qui a une fonctionnalité FTP.

Je pense qu'avec cela vous pouvez utiliser list files qui vous donnera des objets fichiers que vous pouvez faire sur getTimeStamp, vous devriez alors être en mesure d'obtenir seulement ceux dont vous avez besoin.

+0

cela fonctionne, merci! –

3

Malheureusement, la sortie d'une liste de répertoires de serveurs FTP n'est pas imposée par la norme. En fait, il est explicitement décrit comme n'étant pas destiné à l'analyse syntaxique. Le format varie beaucoup entre les serveurs sur certains systèmes d'exploitation.

La RFC 3659 décrit certaines extensions de la norme FTP, y compris la commande "MDTM" pour interroger les temps de modification. Si vous avez de la chance, les serveurs auxquels vous voulez parler ont implémenté cette extension.

+0

+ 1 cela m'a aidé, bien que le serveur que je parlais de l'implémenter comme MODTIME

+0

Je le faisais en PHP, et j'ai maintenant trouvé qu'il avait déjà une fonction ftp_mdtm() :) –

1

getTimestamp() vous donne la dernière heure de modification du fichier. Si vous essayez d'obtenir le moment où le fichier a été téléchargé sur le serveur, cela ne fonctionnerait pas. J'essaie de faire quelque chose de similaire, je veux obtenir tous les fichiers qui ont été téléchargés après X temps. Je ne pouvais pas trouver une façon propre de le faire sans réellement faire un ls et l'analyse à travers cela.

Questions connexes