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 :

FTPClient: Déplacer un fichier dans un autre dossier du FTP


Sujet :

Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut FTPClient: Déplacer un fichier dans un autre dossier du FTP
    Bonjour,

    Je souhaiterais déplacer un fichier qui se trouve sur un FTP, dans un autre dossier de ce même FTP.
    N'ayant pas trouver de méthode le faisant directement, je copie d'abord ce fichier en local, que je transfère ensuite dans le bon dossier du FTP.

    Sauf que problème, cette dernière copie ne fonctionne pas...

    Voici le code:
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    FTPClient ftpClient = new FTPClient();
    ftpClient.connect("ftpperso.free.fr", FTPClient.DEFAULT_PORT);
    ftpClient.login("login", "mdp");
    FTPListParseEngine engine = ftpClient.initiateListParsing();
    FTPFile[] files = engine.getFiles();
    for (FTPFile ftpFile : files) {
    	if(ftpFile.isFile() && ftpFile.getName().endsWith(".txt")) {
    		String fileName = ftpFile.getName();
    		/*Création du fichier en Local*/
    		File file = new File("C:/test.txt");
    		file.createNewFile();
     
    		/*Copie du fichier en Local*/
    		InputStream inputStream = ftpClient.retrieveFileStream(fileName);
    		OutputStream outputStream = new FileOutputStream(file);
     
    		Integer read=0;
    		byte[] bytes = new byte[1024];
    		while((read = inputStream.read(bytes))!= -1){
    			outputStream.write(bytes, 0, read);
    		}
    		inputStream.close();
    		outputStream.flush();
    		outputStream.close();
     
     
    		/*Copie du fichier dans un autre endroit du FTP*/
    		ok = ftpClient.changeWorkingDirectory("archives/");
    		System.err.println("Change to archives: "+ok); //ok = true
    		FileInputStream is = new FileInputStream(file);
    		ok = ftpClient.storeFile(fileName, is);
    		System.err.println("Envoyer fichier: "+ok); //ok = false (pas normal :S)
    		is.close();
    	}
    }
    ftpClient.disconnect();
    Donc si vous avez une solution... ben ça serait génial .

    PS: pour information, j'utilise le FTPClient de org.apache.commons.net.ftp.*

  2. #2
    Membre confirmé Avatar de NeptuS
    Profil pro
    Inscrit en
    Août 2005
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 392
    Points : 508
    Points
    508
    Par défaut
    Dans la classe FTPClient, tu as la fonction :
    boolean doCommand(String command, String params)

    Il ne te reste plus qu'à récupérer la / les commandes FTP pour le déplacement de fichiers
    Toute vérité est bonne à entendre, même si toutes les vérités ne sont pas bonnes à dire.
    Rien ne sert de partir à point, il vaut mieux courir .

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Aurais-tu un exemple d'utilisation ? Car quand je tente de faire un simple "cd", celui me retourne faux, alors que le dossier existe... :S
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println(ftpClient.doCommand("cd" , "archives")); // ==> false

Discussions similaires

  1. Fichier dans un autre dossier
    Par melreg dans le forum Fortran
    Réponses: 2
    Dernier message: 08/04/2009, 15h02
  2. transférer des fichiers dans un autre dossier de façon dynamique
    Par soria_t dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 08/08/2008, 16h28
  3. Déplacer des messages dans un autre dossier
    Par ouadie99 dans le forum Outlook
    Réponses: 5
    Dernier message: 26/02/2008, 17h10
  4. Réponses: 3
    Dernier message: 12/04/2006, 20h44
  5. Déplacer un fichier dans un autre répertoire
    Par t_om84 dans le forum Général Python
    Réponses: 2
    Dernier message: 16/05/2005, 09h36

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