منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : أستفسـار بخصوص progressBar
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الســلام عليكم روحمة الله وبركاته 

عندي أستفسـار بخصوص أداة 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
ياليت تعدل على المشـ{وع
أنا أتمنى التعديل على المشـروع 
معرفة اللي انقل واللي لسى شغلة رياضيات بالعربي انا راسب فيها أربع مرات
تفظل اخي هذا الكود يمكن يفيدك
كود :
Public Class Form1
   
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       OpenFileDialog1.ShowDialog()

       Label2.Text = OpenFileDialog1.FileName.ToString
       Label4.Text = OpenFileDialog1.SafeFileName.ToString
       Dim f As System.IO.FileInfo = New System.IO.FileInfo(Label2.Text)
       Label6.Text = f.Length.ToString
   End Sub

   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
       My.Computer.Network.UploadFile(Label2.Text, "FTP://الرابط" + Label4.Text, "كلمة السر", "الاسم", True, 48000)
   End Sub
 
 
End Class

وين الدعم يا شباب
أول شي شيل يدك من على Shift وانت تكتب بالعربي Angry
المثال اللي مرفق ينقل ملف من درايف لدرايف فقط وما ينفع مع الشبكة مطلقاً
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)
في حالة وجود اسم مستخدم وكلمة مرور في الجهاز الثاني وكان مفعل كسيرفر
الموضوع تقفل والمشكله ما انحلت الاكواد مامشت معاي ياليت اللي عنده خلفيه يفيدنا