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. 我错过了一些明显的东西吗?使用 mkd 而不是 makeDirectory 没有帮助。

  2. 此外,如果目录 /tmp/yyy/zzz/ 不存在,是否可以在一次调用中将文件上传到 /tmp/yyy/zzz/test.txt?

4

3 回答 3

2

您需要一次执行一个,首先是 /tmp/yyy,然后是 /tmp/yyy/zzz。对于您想做的事情,没有捷径可走。

于 2010-07-07T21:45:18.267 回答
1
  1. FTP 服务器通常一次只允许您创建 1 级目录。因此,您必须自己分解路径,并为每个组件发出一个 makeDirectory() 调用。

  2. 不。

于 2010-07-07T21:59:06.750 回答
1

FTP 协议不允许这样做。所以不,您不能在一次调用中创建具有多个级别的目录。

于 2010-07-07T22:04:25.537 回答