2016-04-12 19 views
1

Ich muss eine Datei von SFTP Speicherort mit WinSCP .NET Assembly in C# lesen. Ich bin in der Lage, Datei von SFTP-Speicherort auf den lokalen Pfad herunterladen und lesen. Aber gibt es eine Möglichkeit, den Dateiinhalt direkt zu lesen, ohne auf den lokalen Pfad herunterzuladen?Lesen Sie Datei Inhalt von SFTP Speicherort mit WinSCP

Unten ist der Code zum Herunterladen. Aber ich sehe keine Option verfügbar, um die Datei-Inhalt direkt in WinSCP zu lesen ... so etwas wie Antwort verwenden, streamen etc ...

TransferOptions objTransferoptions = new Transferoptions() 
objTransferoptions.transfermode = Automatic 
Session objsession = new Session() 
objsession.Open() 
objsession.GetFiles(remotepath, localpath, false,objTransferoptions) 

Kann jemand bitte lassen Sie mich wissen, wenn es möglich ist, Dateiinhalte direkt zu lesen vom SFTP Standort? Danke im Voraus!

EDIT:

die obige Frage zu verlängern. Kann mir bitte jemand sagen, dass es möglich ist, Dateien zwischen SFTP remote location (von Remote-Standort 1 zu Remote-Standort 2 in demselben SFTP-Server) zu kopieren.

Bitte beachten Sie: Ich muss Dateien kopieren, nicht zu bewegen.

Antwort

1

WinSCP .NET assembly unterstützt nicht das "Herunterladen" von Remote-Dateiinhalten in den Speicher.

Alles, was Sie tun können, ist download the file zu einem lokalen temporären Speicherort und lesen Sie es in den Speicher von dort.

using (Session session = new Session()) 
{ 
    // Connect 
    session.Open(sessionOptions); 

    // Download to a temporary folder 
    string localPath = Path.GetTempFileName(); 
    session.GetFiles(remotePath, localPath).Check(); 

    // Read the file contents 
    byte[] contents = File.ReadAllBytes(localPath); 

    // Delete the temporary file 
    File.Delete(localPath); 
} 
+0

Got it .. Danke !!! Aber wollen Sie wissen, ob ich eine Datei von einem Remote-Pfad zu einem anderen Remote-Pfad in demselben SFTP-Server kopieren kann? Oder muss ich von Remote-Pfad 1 zu lokalen und wieder lokalen zu Remote-Pfad 2 kopieren? – user3859666

+0

Siehe [Wie kann ich eine Datei mit SFTP in ein anderes Verzeichnis kopieren/duplizieren?] (Http://stackoverflow.com/q/28089821/850848) –

+0

Ja .. Ich benutze Winscp und ich bin OK mit Duplizieren Dialogfeld. Aber kann ich es mit C# -Code tun. Kannst du mich auf eine Code-Referenz verweisen, wenn es möglich ist? – user3859666