2

PutFiles(..)私は WinSCP .NET ライブラリを使用して、 およびを使用して SFTP サーバーからファイルをアップロード/ダウンロードしますGetFiles(..)

このサーバーのファイルのアップロード/ダウンロード中に進行状況を確認する方法はありますか? たとえば、既にダウンロードされているファイル サイズのパーセンテージを取得するには、次のようにします。

ありがとう、マイケル

4

1 に答える 1

7

WinSCP ライブラリのクラスFileTransferProgressに関するイベントがあります。Session

そのイベントに登録して、そのハンドラー内から UI を更新するだけです。

using (Session session = new Session())
{
    // Will continuously report progress of transfer
    session.FileTransferProgress += SessionFileTransferProgress;

    /* Down / upload code here */
}

void SessionFileTransferProgress(object sender, FileTransferProgressEventArgs e)
{
    // Print transfer progress
    Console.Write("\r{0} ({1:P0})", e.FileName, e.FileProgress);
}

FileTransferProgressEventArgs.Sideイベント引数がアップロード用かダウンロード用かを判別できることに注意してください。その他のプロパティには、転送速度、現在転送されているファイルなどに関する情報が含まれています...

完全なドキュメントは次のとおりです。 http://winscp.net/eng/docs/library_session_filetransferprogress

編集:イベントは、各新しい転送 (ファイル) の開始時に呼び出され、その後、転送ごとに最大で 1 秒に 1 回呼び出されます。

于 2015-01-27T11:46:21.940 に答える