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

Copy file on remote server using WinSCP .NET Assembly

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

MoveFile(string sourcePath, string targetPath)

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

我发现在WinSCP客户端有一个叫做duplicate的方法可以执行复制操作,但是在汇编中没有。

有没有办法在源路径中保留原始文件并在目标路径中创建副本?

注:

我的问题是针对 WinSCP .Net 程序集的。我不是在询问 FTP 协议。

使用Session.DuplicateFile method:

public void DuplicateFile(string sourcePath, string targetPath)

但请注意,它仅在 server actually supports the duplication, what most servers don't.

时有效

虽然 GUI "Duplicate" 功能将退回到 "download and upload"(称为 "Duplicate via local temporary copy" in GUI). In .NET assembly, you can do the same using Session.GetFiles and Session.PutFiles,但 Session.DuplicateFile 不会它会自动为您服务。