C# SSH.NET SftpClient:复制/复制SftpFile

C# SSH.NET SftpClient:复制/复制SftpFile,c#,asp.net,.net,sftp,ssh.net,C#,Asp.net,.net,Sftp,Ssh.net,是否有一种方法可以像复制/粘贴一样将文件复制到其他目录中。 .MoveTo方法仅移动SftpFile,我尝试使用SftpFile.Attributes.GetBytes写入LBytes方法,但它总是写入损坏的文件 谢谢您很难直接复制文件。有关原因的详细信息,请参阅: 所以你必须下载并重新上传文件 不创建临时本地文件的最简单方法是: SftpClient client = new SftpClient("exampl.com", "username", "password"); client.C

是否有一种方法可以像复制/粘贴一样将文件复制到其他目录中。 .MoveTo方法仅移动SftpFile,我尝试使用SftpFile.Attributes.GetBytes写入LBytes方法,但它总是写入损坏的文件


谢谢

您很难直接复制文件。有关原因的详细信息,请参阅:

所以你必须下载并重新上传文件

不创建临时本地文件的最简单方法是:

SftpClient client = new SftpClient("exampl.com", "username", "password");
client.Connect();

using (Stream sourceStream = client.OpenRead("/source/path/file.dat"))
using (Stream destStream = client.Create("/dest/path/file.dat"))
{
    sourceStream.CopyTo(destStream);
}

以下是如何将远程文件复制到新文件:

using (var sftp = new SftpClient(host, username, password))
{
  client.Connect();

  using (Stream sourceStream = sftp.OpenRead(remoteFile))
  {
     sftp.UploadFile(sourceStream, remoteFileNew));
  }
}

在我现有的答案之上,你的答案显示了什么?