2017-09-01 2 views
1

Existe-t-il un moyen de copier un fichier dans un autre répertoire comme un copier/coller. .MoveTo() méthode déplacer uniquement le SftpFile et j'ai essayé WriteAllBytes() méthode en utilisant SftpFile.Attribues.GetBytes(), mais il écrit toujours un fichier corrompu.SSH.NET SftpClient: Copier/dupliquer SftpFile

Merci

Répondre

0

Vous aurez du mal à être en mesure de copier le fichier directement. Pour plus de détails pourquoi, voir:
In an SFTP session is it possible to copy one remote file to another location on same remote SFTP server?


Vous devez télécharger et re-télécharger le fichier.

La meilleure façon de le faire (sans créer un fichier local temporaire) est:

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); 
} 
-1

Voici comment copier le fichier distant à nouveau:

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

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

Qu'est-ce que votre réponse montre sur haut de ma réponse existante? –