1

Apache の FTPClient ライブラリを使用していますが、複数レベルの深さの新しいディレクトリを作成する簡単な方法がわかりません。何か不足していますか?

ディレクトリ /tmp がリモート ホストに既に存在すると仮定すると、次のコマンドは /tmp/xxx の作成に成功します。

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

しかし、以下は失敗します:

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

後者の場合、 /tmp/yyy さえ作成されません。

/tmp/yyy を作成してから /tmp/yyy/zzz を作成できることはわかっていますが、/tmp/yyy/zzz を直接作成する方法がわかりません。

  1. 明らかな何かが欠けていますか?makeDirectory の代わりに mkd を使用しても役に立ちませんでした。

  2. また、ディレクトリ /tmp/yyy/zzz/ がまだ存在しない場合、1 回の呼び出しでファイルを /tmp/yyy/zzz/test.txt にアップロードできますか?

4

3 に答える 3

2

最初に/tmp/ yyy、次に/ tmp / yyy / zzzのように、一度に1つずつ実行する必要があります。あなたがやりたいことへの近道のメカニズムはありません。

于 2010-07-07T21:45:18.267 に答える
1
  1. 通常、FTP サーバーでは一度に 1 レベルのディレクトリしか作成できません。したがって、パスを自分で分割し、コンポーネントごとに 1 つの makeDirectory() 呼び出しを発行する必要があります。

  2. いいえ。

于 2010-07-07T21:59:06.750 に答える
1

FTP プロトコルはこれを許可しません。いいえ、1 回の呼び出しで複数のレベルを持つディレクトリを作成することはできません。

于 2010-07-07T22:04:25.537 に答える