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