2016-04-12 15 views
1

C#でWinSCP .NETアセンブリを使用してSFTPロケーションからファイルを読み込む必要があります。 SFTPの場所からローカルパスにファイルをダウンロードして読むことができます。 しかし、ローカルのパスにダウンロードせずにファイルの内容を直接読み取る方法はありますか?WinSCPを使用してSFTPロケーションからファイルコンテンツを読み込みます。

以下は、ダウンロードに使用されるコードです。しかし、私は直接ファイルの内容を読み取ることが可能であるならば、誰かが、私に教えてくださいすることができ

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

...などをストリーミングする、...応答を使用してのようなものをWinSCPの中で直接ファイルの内容を読み取るために利用可能なオプションを参照してくださいませんSFTPの場所から?前もって感謝します!

EDIT:

上記の質問を拡張することができます。誰でも、SFTPのリモートロケーション(同じSFTPサーバのリモートロケーション1からリモートロケーション2まで)間でファイルをコピーすることは可能ですか教えてください。

Pls note:ファイルをコピーする必要があります。移動しないでください。

答えて

1

WinSCP .NET assemblyは、リモートファイルの内容をメモリにダウンロードすることをサポートしていません。

あなたが行うことができるのは、ローカルの一時的な場所にdownload the fileしてそこからメモリに読み込むことです。

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

ありがとうございました!しかし、私は同じSFTPサーバー内のリモートパスから別のリモートパスにファイルをコピーすることができますか?または、リモートパス1からローカルにコピーし、リモートパス2でローカルにコピーする必要がありますか? – user3859666

+0

[SFTPを使って別のディレクトリにファイルをコピー/複製するにはどうすればいいですか?](http://stackoverflow.com/q/28089821/850848) –

+0

はい。私はWinscpを使用しています。しかし、私はC#のコードでそれを行うことができます。可能であれば、私にコードリファレンスを教えてもらえますか? – user3859666

関連する問題