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.

  1. Suis-je manque quelque chose évidente? En utilisant MKD au lieu de makeDirectory n'a pas aidé.

  2. 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à?

Était-ce utile?

La solution

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

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top