在 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
的一个实例)以及该服务中的登录和注销方法。
此外,就我的测试而言,此方法将用新文件替换具有相同名称的现有文件,并根据最新尝试更新上次修改时间。
我需要一些 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
的一个实例)以及该服务中的登录和注销方法。
此外,就我的测试而言,此方法将用新文件替换具有相同名称的现有文件,并根据最新尝试更新上次修改时间。