com.jcraft.jsch.ChannelSftp.get(String src,String dst) 会覆盖现有文件吗?

will com.jcraft.jsch.ChannelSftp.get(String src,String dst) over rides the existing file?

你好我有一个场景,我需要从两个不同的位置下载一组与我的本地机器同名的文件。

示例:

我正在使用 java 和 com.jcraft.jsch.ChannelSftp.get(String src,String dst) 方法来执行此任务。我的疑问是,当我执行第一个操作将位置一个 sample.txt 文件下载到我的本地文件夹时,执行第二个操作将位置两个文件下载到我的同一个本地文件夹。第一个下载的文件是否会附加第二个远程 sample.txt 文件数据,或者它会被新文件替换,还是会创建一个名为 sample(1).txt 的新文件?

如果你检查 javadoc,你会看到 get(src, dest) 方法的默认模式是 OVERWRITE,所以 你的第一个文件默认是被第二个文件覆盖。不同模式的含义是:

  • OVERWRITE - 覆盖现有文件,如果有的话。

  • RESUME - 恢复中断的 upload/download。这仅传输超出现有目标文件长度的源文件部分。

  • APPEND - 文件传输模式:附加到现有文件,如果有的话。