com.jcraft.jsch.ChannelSftp.get(String src,String dst) 会覆盖现有文件吗?
will com.jcraft.jsch.ChannelSftp.get(String src,String dst) over rides the existing file?
你好我有一个场景,我需要从两个不同的位置下载一组与我的本地机器同名的文件。
示例:
- 远程位置一:user/temp1/sample.txt
- 远程位置二:user1/temp2/sample.txt
- 本地机器路径:user3/temp3/
我正在使用 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
- 文件传输模式:附加到现有文件,如果有的话。
你好我有一个场景,我需要从两个不同的位置下载一组与我的本地机器同名的文件。
示例:
- 远程位置一:user/temp1/sample.txt
- 远程位置二:user1/temp2/sample.txt
- 本地机器路径:user3/temp3/
我正在使用 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
- 文件传输模式:附加到现有文件,如果有的话。