Vérification de l'existence d'un fichier sur un serveur FTP
Est-il un moyen efficace pour vérifier l'existence d'un fichier sur un serveur FTP? Je suis à l'aide d'Apache Commons Net. Je sais que je peux utiliser le listNames
méthode de FTPClient
pour obtenir tous les fichiers dans un répertoire spécifique et puis je peux aller sur cette liste pour vérifier si un fichier existe, mais je ne pense pas que c'est efficace surtout quand le serveur contient un grand nombre de fichiers.
source d'informationauteur Mickael Marrache
Vous devez vous connecter pour publier un commentaire.
listFiles(String pathName)
devrait fonctionner très bien pour un fichier unique.À l'aide d'un chemin d'accès complet à un fichier dans
listFiles
(oumlistDir
) appel, que l'on a accepté la réponse indique, va en effet travailler pour de nombreux serveurs FTP:Mais en fait elle viole spécification FTP comme les cartes de commande FTP
Selon la spécification, le FTP
LIST
commande acceptent un chemin d'accès à un dossier seulement.En effet la plupart des serveurs FTP peuvent accepter un masque de fichier dans le
LIST
commande (et un nom exact du fichier est une sorte de masque de trop). Mais c'est beyod la norme et non pas tous les serveurs FTP ne prend en charge (à juste titre).Un code portable qui fonctionne sur n'importe quel serveur FTP a pour filtrer les fichiers en local:
Plus efficace est d'utiliser
mlistFile
(MLST
de commande), si le serveur la prend en charge:Cette méthode peut être utilisé pour tester l'existence d'un répertoire.
Si le serveur ne prend pas en charge
MLST
de commande, vous pouvez abusgetModificationTime
(MDTM
de commande):Cette méthode ne peut pas être utilisé pour tester une exitence d'un répertoire.