IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Récupérer contenu fichier sur un FTP


Sujet :

Java

  1. #1
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 538
    Par défaut Récupérer contenu fichier sur un FTP
    Bonjour,

    Je souhaite récupérer le contenu d'un fichier, dans un répertoire FTP, en java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private static String getStringContentFromFile(String fileToGet)
    fileToGet est le nom du fichier, exemple "toto.txt"

    Voila mon code, qui semble être correct :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    private static String getStringContentFromFile(String fileToGet) throws SocketException, IOException {
        String fileContent = null;
     
        // Connection
        FTPClient ftpClient = new FTPClient();
        ftpClient.connect(server);
        ftpClient.login(user, pass);
     
        // On change de répertoire
        ftpClient.enterLocalPassiveMode();
        ftpClient.changeWorkingDirectory(directory);
     
        fileContent = convertStreamToString(ftpClient.retrieveFileStream(fileToget));
     
        // Fermeture connection
        ftpClient.logout(); ftpClient.disconnect();
     
        return fileContent;
    }    
     
    private static String convertStreamToString(java.io.InputStream is) {
        java.util.Scanner scanner = new java.util.Scanner(is);
        java.util.Scanner s = scanner.useDelimiter("\\A");
        String stringToReturn = s.hasNext() ? s.next() : "";
        scanner.close();
        return stringToReturn;
    }


    Pouvez-vous vérifier si je n'ai rien oublié ?

    mon code doit retourner "null" si le fichier n'existe pas.
    A quoi sert ftpClient.enterLocalPassiveMode(); ?

    Merci.

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 095
    Par défaut
    Citation Envoyé par CliffeCSTL Voir le message
    Voila mon code, qui semble être correct :

    Pouvez-vous vérifier si je n'ai rien oublié ?
    Lance ton code et regarde ce qu'il fait, on ne vas pas le faire pour toi...

    Citation Envoyé par CliffeCSTL Voir le message
    A quoi sert ftpClient.enterLocalPassiveMode(); ?
    A dire au serveur que tu veux passer en mode passif pour les transferts.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 538
    Par défaut
    Merci.

    Quelqu'un d'autre ?

  4. #4
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Citation Envoyé par CliffeCSTL Voir le message
    Merci.

    Quelqu'un d'autre ?
    Oui, il manque le test pour renvoyer null si le fichier n'existe pas.

  5. #5
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 538
    Par défaut
    Citation Envoyé par eulbobo Voir le message
    Oui, il manque le test pour renvoyer null si le fichier n'existe pas.
    Exact.

    Au niveau de la connexion FTP, tout est correct ?

  6. #6
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Là comme ça j'aurai tendance à dire oui... Après, tu pourrais aussi récupérer à chaque étape le code de retour du serveur pour savoir si c'est utile d'aller plus loin.
    En gros, chaque méthode renvoie normalement un Objet ou un code qui te permet de dire si tout s'est bien passé ou s'il y a eu une erreur.

    J'aime cette lib pour ça : de base, ça ne renvoie pas des exceptions de tous les côtés pour tout et n'importe quoi, et ça te laisse gérer les problèmes toi même avec les codes retours qui t'intéressent ! (en gros, ils te permettent de ne pas faire une gestion par exception, et ça c'est bien).

    Disconnect à la fin c'est bien aussi ! Tout le monde n'y pense pas. Mais c'est nécessaire.

Discussions similaires

  1. Récupérer un fichier sur un ftp via une application mobile
    Par superslinky dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 02/06/2015, 13h07
  2. récupérer taille fichier sur ftp
    Par zitoune31 dans le forum VB.NET
    Réponses: 4
    Dernier message: 01/01/2014, 21h23
  3. Réponses: 2
    Dernier message: 25/04/2013, 10h49
  4. Récupérer un fichier sur un FTP et en lire le contenu
    Par nico1214 dans le forum Entrée/Sortie
    Réponses: 8
    Dernier message: 23/06/2009, 17h22
  5. [] [Réseau] Transfert fichier sur un FTP
    Par CYFL dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 26/02/2003, 17h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo