C#.NET
private TKFP.Net.FtpClient ftpClient;
private void SendFile(string serverPath, string localPath)
{
TKFP.IO.FileInfo file = new TKFP.IO.FileInfo(ftpClient, serverPath);
if (file.Exists)
{
System.Windows.Forms.MessageBox.Show("ファイルは既に存在します。");
return;
}
new System.Threading.Thread(new System.Threading.ThreadStart(Monitor)).Start();
file.ReadFrom(localPath);
System.Windows.Forms.MessageBox.Show("ファイルを送信しました。");
}
private void Monitor()
{
while (ftpClient.Connected)
{
System.Console.WriteLine("Send : {0}byte Receive : {1}byte", ftpClient.SendDataLength, ftpClient.ReceiveDataLength);
System.Threading.Thread.Sleep(500);
}
}
VB.NET
Private ftpClient As TKFP.Net.FtpClient
Private Sub SendFile(ByVal serverPath As String, ByVal localPath As String)
Dim file As New TKFP.IO.FileInfo(ftpClient, serverPath)
If file.Exists Then
System.Windows.Forms.MessageBox.Show("ファイルは既に存在します。")
Return
End If
Dim thread As System.Threading.Thread
thread = New System.Threading.Thread(New System.Threading.ThreadStart(AddressOf Monitor))
thread.Start()
file.ReadFrom(localPath)
System.Windows.Forms.MessageBox.Show("ファイルを送信しました。")
End Sub
Private Sub Monitor()
While ftpClient.Connected
System.Console.WriteLine("Send : {0}byte Receive : {1}byte", ftpClient.SendDataLength, ftpClient.ReceiveDataLength)
System.Threading.Thread.Sleep(500)
End While
End Sub
VB.NETのコードはC#.NETを元に「
C#.NET to VB.NET Translator」によって作成したものです
次のプログラムではファイルの転送前に転送量の監視スレッドを開始し、ファイル転送中の転送量をコンソールに表示しています。 監視スレッドの実行と停止には特に制御を行っていないので、実際のプログラムへ転用するには監視スレッドの生成と破棄を厳密におなう必要があります。
また、TKFP.Net.FtpClientクラスのSendDataLengthプロパティとReceiveDataLengthプロパティには ファイル転送の送通信量が記録されるので、ファイル個別での転送量を表示したい場合は、 プロパティの値をリセットするか、開始時のサイズを記録する必要があります。