منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
لتنزيل ملف من موقع على الانترنت - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90)
+--- قسم : مكتبة أكواد المنتدى (http://vb4arb.com/vb/forumdisplay.php?fid=111)
+---- قسم : مكتبة أكواد .net (http://vb4arb.com/vb/forumdisplay.php?fid=117)
+---- الموضوع : لتنزيل ملف من موقع على الانترنت (/showthread.php?tid=6249)



لتنزيل ملف من موقع على الانترنت - RaggiTech - 17-10-12

كاتب الموضوع : Boutemine Oualid

السلام عليكم و رحمة الله وبركاته
هذه الطريقة غير محبذة لكن جيدة لتطبيق مبادئ التدفقات Streams

كود :
Public Sub DownloadFile(ByVal RemoteFilePath As String, ByVal SaveFilePath As String, ByVal TimeOut As Integer, Optional ByVal BlockSize As Integer = 1024)
Dim wr As WebRequest = WebRequest.Create(RemoteFilePath)
wr.Timeout = TimeOut
Dim wresp As WebResponse = wr.GetResponse()
Dim RemoteStream As Stream = wresp.GetResponseStream()
Dim LocalStream As New FileStream(SaveFilePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read)
Dim LocalStreamW As New BinaryWriter(LocalStream)
Dim buff As Byte() = New Byte(BlockSize - 1) {}
Dim iBytesRead As Integer = 1
While iBytesRead > 0
iBytesRead = RemoteStream.Read(buff, 0, buff.Length)
LocalStreamW.Write(buff, 0, iBytesRead)
End While
wresp.Close()
RemoteStream.Close()
RemoteStream.Dispose()
LocalStreamW.Close()
LocalStream.Close()
LocalStream.Dispose()
End Sub
الطريقة الأفضل هي استعمال الفئة WebClient التابعة لمجال الأسماء System.Net

كود :
Dim client As New System.Net.WebClient()
'اذا كان الدخول الى الموقع محمي علينا بتعيين معلومات الدخول
'client.Credentials = New System.Net.NetworkCredential("UserName", "Passowrd")
client.DownloadFile("Remote Address", "c:\myFile")