【问题标题】:Copy file on remote server using WinSCP .NET Assembly使用 WinSCP .NET 程序集在远程服务器上复制文件
【发布时间】:2018-07-24 06:10:03
【问题描述】:

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

MoveFile(string sourcePath, string targetPath)

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

我发现 WinSCP 客户端中有一个名为 duplicate 的方法可以执行复制操作,但它在汇编中不可用。

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

注意:

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

【问题讨论】:

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


【解决方案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 不会自动为您执行此操作。

【讨论】:

  • 感谢您的支持。我还发现 DuplicateFile(string sourcePath, string targetPath);该功能在最新版本的程序集 (5.13.3) 中可用。这是否遵循相同的“通过本地临时副本复制”概念?
  • 真的!我完全忘记了DuplicateFile 已经发布了。我已经更新了我的答案。
猜你喜欢
  • 2015-04-10
  • 2020-12-26
  • 2021-12-29
  • 2020-12-30
  • 2016-01-05
  • 2011-11-14
  • 1970-01-01
  • 1970-01-01
  • 2021-02-08
相关资源
最近更新 更多