Public Sub DFile(ByVal Str_Path As String, ByVal Local_Path As String, ByVal Str_UserName As String, ByVal Str_Password As String)
Dim URI As String = Str_Path
Dim ftp As System.Net.FtpWebRequest = _
CType(FtpWebRequest.Create(URI), FtpWebRequest)
ftp.Credentials = New _
System.Net.NetworkCredential(Str_UserName, Str_Password)
ftp.KeepAlive = False
ftp.UseBinary = True
ftp.Method = System.Net.WebRequestMethods.Ftp.DownloadFile
Using response As System.Net.FtpWebResponse = _
CType(ftp.GetResponse, System.Net.FtpWebResponse)
'建立進度條,把他加入FORM中
'Dim pb As New ProgressBar
'設定最小值
ProgressBar1.Minimum = 0
Using responseStream As IO.Stream = response.GetResponseStream
''設定最大值
ProgressBar1.Maximum = GetFileSize("ftp://1.1.1.1/xx.zip", "使用者名", "******")
'loop to read & write to file
Using fs As New IO.FileStream(Local_Path, IO.FileMode.Create)
Dim buffer(2047) As Byte
Dim read As Integer = 0
Do
read = responseStream.Read(buffer, 0, buffer.Length)
fs.Write(buffer, 0, read)
'每次讀取的長度
If ProgressBar1.Maximum > (ProgressBar1.Value + 2047) Then
ProgressBar1.Value += buffer.Length
Else
ProgressBar1.Value = ProgressBar1.Maximum
End If
Loop Until read = 0 'see Note(1)
responseStream.Close()
fs.Flush()
fs.Close()
End Using
responseStream.Close()
End Using
response.Close()
End Using
MsgBox("下載下傳完成", MsgBoxStyle.OkOnly + 48, "提示")
End Sub
Public Function GetFileSize(ByVal filename As String, ByVal Str_UserName As String, ByVal Str_Password As String) As Long
Dim URI As String = filename
Dim ftp As System.Net.FtpWebRequest = CType(FtpWebRequest.Create(URI), FtpWebRequest)
ftp.Credentials = New System.Net.NetworkCredential(Str_UserName, Str_Password)
ftp.Method = WebRequestMethods.Ftp.GetFileSize
Dim response As FtpWebResponse = ftp.GetResponse
GetFileSize = response.ContentLength
response.Close()
End Function