使用WinSCP .NET Assembly在远程服务器上复制文件

时间:2018-07-24 06:10:03

标签: c# .net ftp winscp winscp-net

我在一个项目中一直使用WinSCP .NET程序集将文件从一个FTP服务器传输到另一个FTP服务器。现在,我想将文件从一个目录复制到另一个目录(两者都在同一FTP服务器上)。我在WinSCP .NET程序集中找到了以下方法:

MoveFile(string sourcePath, string targetPath)

但是它将文件从源目录移动到目标路径(从源路径删除),而我想在两个路径上都保留一个副本。

我发现WinSCP客户端中有一种称为复制的方法,该方法执行复制操作,但是在汇编中不可用。

有什么方法可以将原始文件保留在源路径中,也可以在目标位置创建副本吗?

注意:

我的问题特定于WinSCP .Net程序集。我不是在问FTP协议。

1 个答案:

答案 0 :(得分:1)

使用Session.DuplicateFile method

public void DuplicateFile(string sourcePath, string targetPath)

不过请注意,只有在server actually supports the duplication, what most servers don't下它才有效。

而GUI “重复” 功能将退回到“下载并上传”(在GUI中称为"Duplicate via local temporary copy")。在.NET程序集中,您可以使用Session.GetFilesSession.PutFiles进行相同的操作,Session.DuplicateFile不会自动为您完成。