在 Java 的 FTP 服务器上创建一个空文件

Create an empty file on FTP server in Java

我需要一些 Java 方式类似 bash touch-FTP 上的命令 – 在 FTP 服务器上创建一个空文件 org.apache.commons.net.ftp.FTPClient(或其他图书馆)。

上传一个空的 "in-memory file",像这样:

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

这是我在 FTP 实用程序之一中编写的方法,用于创建名称为 - zeroByteFileName 且位于 FTP 目录 - [=12= 的零字节文件],

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 的一个实例)以及该服务中的登录和注销方法。

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