【问题标题】:Create an empty file on FTP server in Java用Java在FTP服务器上创建一个空文件
【发布时间】:2018-04-28 20:41:10
【问题描述】:

我需要一些类似于 FTP 上的 bash touch-command 的 Java 方式——使用 org.apache.commons.net.ftp.FTPClient(或其他库)在 FTP 服务器上创建一个空文件。

【问题讨论】:

    标签: java ftp apache-commons-net


    【解决方案1】:

    这是我在我的一个 FTP 实用程序中编写的一种方法,用于创建名称为 - zeroByteFileName 并在 FTP 目录 - remoteDirectory 的零字节文件,

    public boolean createZeroByteFile(String remoteDirectory, String zeroByteFileName) {
        FTPClient ftpClient = null;
        try (InputStream targetStream = new ByteArrayInputStream("".getBytes())) {
            ftpClient = login(remoteDirectory);
            ftpClient.storeFile(remoteDirectory + "/" + zeroByteFileName, targetStream);
            return true;
        } catch (IOException e) {
            logger.error("Failed to create zero byte file - {} thru FTP (IOException) for directory - {} .",
                zeroByteFileName, remoteDirectory);
            logger.error(e.getMessage(), e);
            return false;
        } finally {
            logOut(ftpClient);
        }
        }
    

    我假设您为您的 FTP 服务定义了一个 logger(并且是 org.slf4j.Logger 的一个实例)以及该服务中的登录和注销方法。

    此外,就我的测试而言,此方法将用新文件替换具有相同名称的现有文件,并根据最新尝试更新上次修改时间。

    【讨论】:

      【解决方案2】:

      上传一个空的“内存文件”,像这样:

      InputStream bin = ByteArrayInputStream(new byte[0]);
      ftpClient.storeFile("/remote/path/emptyfile", bin);
      

      【讨论】:

        猜你喜欢
        • 2012-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-05
        • 2016-09-26
        • 2012-08-06
        • 2018-10-22
        • 1970-01-01
        相关资源
        最近更新 更多