代码之家  ›  专栏  ›  技术社区  ›  Lolo

如何使用FTP在Java中一个调用中创建多个级别的目录

  •  1
  • Lolo  · 技术社区  · 15 年前

    我正在使用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?

    3 回复  |  直到 13 年前
        1
  •  1
  •   nos    15 年前
    1. FTP服务器通常只允许您一次创建一个目录级别。因此,您必须自己分解路径,并为每个组件发出一个makedirectory()调用。

    2. 不。

        2
  •  2
  •   Thorbjørn Ravn Andersen    15 年前

    您需要一次一个,首先是/tmp/yyy,然后是/tmp/yyy/zzz。你想做的事没有捷径机制。

        3
  •  1
  •   Poni    15 年前

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