2010-07-07 15 views
1

J'utilise la bibliothèque FTPClient d'Apache et je n'arrive pas à trouver un moyen simple de créer un nouveau répertoire de plus d'un niveau de profondeur. Est-ce que je manque quelque chose?Comment créer un répertoire avec plusieurs niveaux en un seul appel en Java en utilisant FTP

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 échoue suivant:

String path = "/tmp/yyy/zzz"; 
FTPClient ftpc = new FTPClient(); 
... // establish connection and login 
ftpc.makeDirectory(path); 

Dans ce dernier cas, even/tmp/yyy n'est pas créé. Je sais que je peux créer/tmp/yyy puis créer/tmp/yyy/zzz, mais je n'arrive pas à comprendre comment créer directement/tmp/yyy/zzz.

  1. Est-ce que quelque chose me manque? Utiliser mkd au lieu de makeDirectory n'a pas aidé.

  2. De même, est-il possible dans un appel de télécharger un fichier dans /tmp/yyy/zzz/test.txt si le répertoire/tmp/yyy/zzz/n'existe pas déjà?

Répondre

1
  1. Les serveurs FTP vous permettent généralement uniquement de créer 1 niveau d'un répertoire à la fois. Vous devrez donc vous-même décomposer le chemin et émettre un appel makeDirectory() pour chacun des composants.

  2. No.

2

Vous devez les faire un à la fois, d'abord/tmp/yyy puis/tmp/yyy/zzz. Il n'y a pas de raccourci pour ce que vous voulez faire.

1

Le protocole FTP ne permet pas. Donc non, vous ne pouvez pas créer un répertoire avec plusieurs niveaux en un seul appel.