以下のサンプルコードは、進行状況を表示しながらファイルを取得する方法を示します。 getFile関数は、Ftp.Startメソッドに渡して非同期に実行できます。
private void getFile()
{
// サーバーからファイルを取得します。
ftp1.Session.RemoteEndPoint.HostNameOrAddress = myServer;
ftp1.Session.Username = myUsername;
ftp1.Session.Password = myPassword;
ftp1.Connect();
ftp1.Authenticate();
ftp1.Get("myFile.pdf", myLocalDirectory + "\\myFile.pdf", Synchronize.Off);
ftp1.Close();
}
private void ftp1_Progress(object sender, ProgressEventArgs e)
{
// 進行状況情報(処理、ファイル名、ファイルの位置、ファイルの長さ)を表示します。
string s = (e.Item.Action == CopyAction.Get) ? "Getting " : "Putting ";
s += e.Item.RemotePath + " (" + e.Item.Position.ToString() + " of " + e.Item.Length.ToString() + ")";
showProgress(s);
}
Private Sub getFile()
' サーバーからファイルを取得します。
ftp1.Session.RemoteEndPoint.HostNameOrAddress = myServer
ftp1.Session.Username = myUsername
ftp1.Session.Password = myPassword
ftp1.Connect()
ftp1.Authenticate()
ftp1.Get("myFile.pdf", myLocalDirectory & "\myFile.pdf", Synchronize.Off)
ftp1.Close()
End Sub
Private Sub ftp1_Progress(ByVal sender As Object, ByVal e As ProgressEventArgs) Handles ftp1.Progress
' 進行状況情報(処理、ファイル名、ファイルの位置、ファイルの長さ)を表示します。
Dim s As String
s = If((e.Item.Action = CopyAction.Get), "Getting ", "Putting ")
s &= e.Item.RemotePath & " (" & e.Item.Position.ToString() & " of " & e.Item.Length.ToString() & ")"
showProgress(s)
End Sub