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:
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 :D.
PS: pour information, j'utilise le FTPClient de org.apache.commons.net.ftp.*