Supprimer un fichier/dossier d'un serveur FTP en Java

Pour supprimer un fichier existant dans le serveur FTP en utilisant l'API Apache Commons Net, on peut utiliser la méthode deleteFile() de la classe FTPClient:

public boolean deleteFile(String pathname) throws IOException: cette méthode émettra une commande au serveur FTP qui supprime le chemin du fichier distant spécifié dans le paramètre pathname. Cette méthode retourne true si le fichier distant est supprimé avec succès, sinon false si le fichier n'existe pas ou c'est un répertoire. Cette méthode déclenche une exception FTPConnectionClosedException dans le cas où la connexion avec le serveur est actuellement fermée, ou IOException si une erreur de lecture/écriture se produit pendant la communication avec le serveur.

Pour utiliser l'API Apache Commons Net, vous devez la télécharger à partir de http://commons.apache.org/net/download_net.cgi et ajouter le fichier .jar dans votre classpath.

Pour illustrer l'utilité de la méthode deleteFile(), on va travailler avec un exemple lequel:
  • S'identifier au serveur FTP.
  • Supprimer le fichier sur le serveur.
  • Se déconnecter du serveur.
Voici un exemple de l'utilisation de la méthode deleteFile():

import java.io.IOException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

public class deleteFileFTP {

public static void main(String[] args) {
String server = "nom ou adresse du serveur";
int port = 21;
String username = "nom utilisateur";
String password = "mot de passe";

FTPClient ftpClient = new FTPClient();
try {

ftpClient.connect(server, port);

int reponse = ftpClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(reponse)) {
System.out.println("Connexion echouée");
return;
}

boolean res = ftpClient.login(username, password);

if (res==false) {
System.out.println("Identification au serveur echoué");
return;
}
String fileToDelete = "/musique/Symphonie.wma";

boolean estSupprime = ftpClient.deleteFile(fileToDelete);

if (estSupprime==true) {
System.out.println("Le fichier a été supprimé avec succès");
} else {
System.out.println("Impossible de supprimer le fichier");
}
} catch (IOException ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
} finally {
// déconnexion du serveur
try {
if (ftpClient.isConnected()) {
ftpClient.logout();
ftpClient.disconnect();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
Après la compilation et l'exécution du programme, le terminal affiche que la suppression a été réussie:

Le fichier a été supprimé avec succès