Comment créer un répertoire avec plusieurs niveaux dans un appel en Java utilisant le protocole FTP
-
02-10-2019 - |
Question
J'utilise la bibliothèque ClientFTP d'Apache et ne peut pas trouver un moyen simple de créer un nouveau répertoire qui est plus d'un niveau profond. Am quelque chose que je manque?
En supposant que le répertoire / tmp existe déjà sur mon hôte distant, la commande suivante réussit à créer / tmp / xxx
String path = "/tmp/xxx";
FTPClient ftpc = new FTPClient();
... // establish connection and login
ftpc.makeDirectory(path);
mais ce qui suit échoue:
String path = "/tmp/yyy/zzz";
FTPClient ftpc = new FTPClient();
... // establish connection and login
ftpc.makeDirectory(path);
Dans ce dernier cas, même / tmp / YYY est pas créé.
Je sais que je peux créer / tmp / yyy puis créer / tmp / yyy / zzz, mais je ne peux pas comprendre comment créer directement / tmp / yyy / zzz.
-
Suis-je manque quelque chose évidente? En utilisant MKD au lieu de makeDirectory n'a pas aidé.
-
En outre, est-il possible dans un appel à télécharger un fichier à /tmp/yyy/zzz/test.txt si le répertoire / tmp / yyy / zzz / n'existe pas déjà?
La solution
-
serveurs FTP généralement seulement vous permet de créer 1 niveau d'un répertoire à la fois. Ainsi, vous devrez briser le chemin vous et lancer un appel makeDirectory () pour chacun des composants.
-
Non.
Autres conseils
Vous devez les faire un à la fois, d'abord / tmp / yyy et / tmp / yyy / zzz. Il n'y a pas de mécanisme de raccourci pour ce que vous voulez faire.
Le protocole FTP ne permet pas. Donc non, vous ne pouvez pas créer un répertoire avec plusieurs niveaux en un seul appel.