java - SFTP 无法处理名称包含星号的文件

标签 java sftp

我有一个关于 SFTP 的疑问。 我使用 sftp 来实现文件传输功能(在 java 调度程序中)。 该程序将使用 sftp 将文件从一个位置传输到另一个远程位置。 除名称中包含星号的文件外,所有文件均已成功传输。 星号在 sftp 中被视为通配符。 但是,有没有办法配置 sftp,使其接受 * 并传输名称中包含星号的文件?

任何帮助将不胜感激。

注意: 我使用 com.zehon.sftp.SFTP API 作为 SFTP 客户端。 我使用了此 api 中的以下方法:

public static int sendFile(java.lang.String localFilePath,
                           java.lang.String sftpDestFolder,
                           java.lang.String serverName,
                           java.lang.String username,
                           java.lang.String password)
                    throws FileTransferException

谢谢 编码(marshal)

最佳答案

您需要使用反斜杠转义文件名,以免将星号解释为通配符;例如

String oldstring = "file*name";
String escaped = oldstring.replace("*", "\\*");

然后您使用转义而不是oldstring。大多数 jsch ftp 代码确实提到了操作的通配符,因此在使用代码时必须注意这一点。

关于java - SFTP 无法处理名称包含星号的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25845530/

相关文章:

java - 返回整数数组的 SQLite 查询数据

java - 将数组排序为三个不同的 ArrayLinearList

java - 不使用中间文件直接从SFTP下载文件到HTTP响应

java - 通过 Java 的 SFTP 连接要求奇怪的身份验证

java - 写文件后如何在 mule 流中使用 sftp?

java - 我如何完成这个双向匹配程序?

java - 带有 FileReader 的 BufferedReader 使用大量 RAM

Java Applet init 非常慢 - java 1.8。 u60

netbeans - 删除远程服务器上的文件

shell - 如果sftp中不存在,如何创建目录