الســلام عليكم روحمة الله وبركاته
عندي أستفسـار بخصوص أداة progressBar هاذي الأداه ما تعاملت معها كثيـر وحبيت أستخدمها في نقـل الملفات
طبعاً الكود الموجود ينقل ملف من جهاز الكلاينت إلــى السيرفر إلى الســـــيرفر طعباً الملفات أحجامها كبيـره جداً جداً
فماهي أفضل طريقه لعمل لوب لهذا الكود بحيث أنه يعمل بشكل صحيح ويوض المرسل والمتبقي في أداة progressBar
هذا مثال لرفع الملف على الشبكة سواء محلية أو انترنت، بشرط وجود صلاحية على المجلد المراد الرفع داخله.
إذا مجلد مشاركة يفضل أخذ اسم المسار من خصائص المجلد والذي يكون عادة يبدأ ب \\ وهو شبيه بهذا الاسم DELL-PC\Users\Admin\Desktop\sharefolder\\ ثم تضع بعده اسم للملف وليس بالضرورة ان يكون مشابه لاسم الملف الأساسي
كود :
Public Class Form1
Private WithEvents wc As New Net.WebClient
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim srcFilename As String = "C:\filename.txt"
Dim trgFilename As String = "ipadress/uploadfolder/filename.txt"
Try
wc.Credentials = New Net.NetworkCredential("username", "password") ' إذا لزم الأمر
wc.UploadFileAsync(New Uri(trgFilename), srcFilename)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub wc_UploadFileCompleted(ByVal sender As Object, ByVal e As System.Net.UploadFileCompletedEventArgs) Handles wc.UploadFileCompleted
MsgBox("تم رفع الملف")
End Sub
Private Sub wc_UploadProgressChanged(ByVal sender As Object, ByVal e As System.Net.UploadProgressChangedEventArgs) Handles wc.UploadProgressChanged
Me.ProgressBar1.Value = e.ProgressPercentage
End Sub
End Class
شكرا ممدوح على تعليقك ولكن الكود يعمل معي بشكل صحيح لأن عندي شروط في نقل الملف أنا
الشمكله في تفعيل الأداه progressBar مع النقل
الكود يشمل تفعيل الأداه progressbar
إذا تقصد مجموع البيانات فيمكن قراءة BytesSent وTotalBytesToSend في الحدث UploadProgressChanged
كود :
Private Sub wc_UploadProgressChanged(ByVal sender As Object, ByVal e As System.Net.UploadProgressChangedEventArgs) Handles wc.UploadProgressChanged
Me.ProgressBar1.Value = e.ProgressPercentage
Me.Label1.Text = " تم نقل " & e.BytesSent & " بايت من " & e.TotalBytesToSend & " بايت"
End Sub
أنا أتمنى التعديل على المشـروع
معرفة اللي انقل واللي لسى شغلة رياضيات بالعربي انا راسب فيها أربع مرات
أول شي شيل يدك من على Shift وانت تكتب بالعربي
المثال اللي مرفق ينقل ملف من درايف لدرايف فقط وما ينفع مع الشبكة مطلقاً
http://stackoverflow.com/questions/22303...sual-basic
تلاقي الرابط مثال يوضح لك الوقت والحجم
بالنسبة لنقل الملف بين السيرفرات فهتستخدم
My.Computer.Network.UploadFile
وهنا راح يطلع لك نافذه بشكل تلقائي فيها شريط تقدم العملية
مثلا
My.Computer.Network.UploadFile("C:\Test.txt", "server-Name", "User-Name", "user-password", True, 48000)
في حالة وجود اسم مستخدم وكلمة مرور في الجهاز الثاني وكان مفعل كسيرفر
الموضوع تقفل والمشكله ما انحلت الاكواد مامشت معاي ياليت اللي عنده خلفيه يفيدنا