2009年1月18日 星期日

VB.net檔案傳輸|C#檔案傳輸

久違的程式POST( C#傳檔 / VB.net VB2005 VB2008傳檔 ),

心血來潮寫完=A=,
網路上也沒夠強大的程式碼,
Socket本身的BeginSendfile則沒有進度說明,
因此下面這個,
有進度Event(ProgressChanged),也有完成Event(ProgressFinished)

函式都註解的很清楚,所以我就不多打了~

VB.net程式碼(已測試)

C#程式碼(未測試)


使用範例:

(對指定IP進行檔案傳送,當然對方也要開著本程式才行)

(Form1上有一條進度列、一個文字框、一個按鈕)

Public Class Form1
Public F As New FileServer(Me)
Private Dia As New OpenFileDialog()
Private Sub Prog1(ByVal sender As TransferTask, ByVal P As Integer)
ProgressBar1.Value = P
End Sub
Public Sub Fin(ByVal sender As TransferTask, ByVal [Error] As Boolean)
Button1.Enabled = True
MsgBox("檔案傳送成功 " & Not [Error])
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Not Dia.ShowDialog() = Windows.Forms.DialogResult.Cancel Then
Button1.Enabled = False
BeginTransFile(Dia.FileName, "C:\" & My.Computer.FileSystem.GetFileInfo(Dia.FileName).Name, TextBox1.Text, AddressOf Fin, AddressOf Prog1)
End If
End Sub
End Class

2 則留言:

  1. 我現在目前要做一支程式,利用vb.net做檔案的傳輸。一台電腦當server,另外一台只要打入ip與port,即可傳送檔案到server端,且過程中可以即時顯示目前傳遞多少檔案,不知道這樣的程式你這個code能夠做到嗎? 我有下載vb.net你放上去的那個檔案,但使用範例我看不太懂怎樣使用,像BeginTransFile和TransferTask及FileServer都顯示未定義,不知道你那邊是否有sample code可以寄給我參考嗎?謝謝~Email: alen.chang@hotmail.com

    回覆刪除
  2. 現在我需要做一個檔案傳輸的程式,可是目前沒有頭緒,可以請大大將此程式寄給我參考嗎?? 我的E-mail:zxc0616@hotmail.com

    回覆刪除