درس- تعلم كيف تصنع برنامج ftp بالتفصيل + مثال - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم مقالات VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=184) +--- الموضوع : درس- تعلم كيف تصنع برنامج ftp بالتفصيل + مثال (/showthread.php?tid=5019) |
درس- تعلم كيف تصنع برنامج ftp بالتفصيل + مثال - RaggiTech - 03-10-12 كاتب الموضوع : Islam Ibrahim
ما هو الاف تي بيبسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته ارجوا من الادارة عدم غلق او حذف الموضوع بحجة انه مكرر لانه في النهايه لخدمة الاعضاء وللحفاظ علي الموضوع من الضياع. كيف تصنع برنامج FTP في Vb.net كاتب الدرس: احمد زكريا صالح(ahmed z s) الاف تي بي هو برنامج لتعامل مع الملفات التي موجودة في سيرفر موقعك فكرة عمل البنامج الفكرة هي انك سترسل طلب الي الاف تي بي سيرفر وبه ما طلبت وبعد ذلك سيرد عليك الاف تي بي سيرفر بالاستجابه وبها المعلومات التي طلبتها او ينفذ ما طلبت اكواد صناعة البرنامج مع الشرح
System.Net.WebRequest.Create - System.Net.FtpWebRequest
خاصة بارسال طلب الي السيرفر(موقع ال اف تي بي) بالتعامل مع ملف معين مثلا لتحميل او للحذف او لانشاء ملف جديد مثل عند الابلود اقتباس:[TABLE="width: 100%"] [TR] [TD="class: alt2"] Dim clsRequest As System.Net.FtpWebRequest = (System.Net.WebRequest.Create
[/TD]("ftp://" & "مكان الملف الذي تريد التعامل معه")) [/TR] [/TABLE] clsRequest.Credentials - System.Net.NetworkCredential
هذه التعبير خاص باعطاء بيانات سيرفر الاف تي بي الخاص بك (اسم المستخدم والباسورد)اقتباس:
هذه الداله هي اهم دالة حيث انها هي التي ستحتوي الامر الذي تريد طلبة الي سييرفر الافتي بي[TABLE="width: 100%"] [TR] [TD="class: alt2"]clsRequest.Credentials = NewSystem.Net.NetworkCredential(‘User Name, Password)[/TD] [/TR] [/TABLE] clsRequest.Method - System.Net.WebRequestMethods.Ftp واهم الدوالات التي موجوده بها لحذف ملف DeleteFile لتحميل ملف DownloadFile لعمل قائمة بالملفات والمجلدات الموجوده ListDirectory لرفع ملف UploadFile لحذف مجلد RemoveDirectory اقتباس:
[TABLE="width: 100%"] [TR] [TD="class: alt2"]clsRequest.Method = System.Net.WebRequestMethods.Ftp.DeleteFile[/TD] [/TR] [/TABLE] وبهذا الامر طلبنا حذف الملف الذي حددنا عندما ارسلنا الطلب بالاعلي بعد ذلك نطلب من الاف تي بي سيرفر الاستجابة لما طلبنا اقتباس:
[TABLE="width: 100%"] [TR] [TD="class: alt2"]Dim ftpWebResp As FtpWebResponse = clsRequest.GetResponse()[/TD] [/TR] [/TABLE] الي الان قد انتهينا من حذف الملف لاننا طلبنا شئ من السيرفر ولا نريد ان يرسل لنا السيرفر شئ مثل عند تحميل ملف او نرسل لسيرفر شئ عند الرفع. هذه الطريقة تكفي عند طلب مسح ملف او مجلد او صنع مجلد جديد
فاذا اردت ان تحذف مجلد مثلا تغير الميثود من DeleteFile الي RemoveDirectory مع تغيير مسار المجلد الذي حددنا في اول الدرس مع Create بعد ان ارسلنا الطلب الي سيرفر الاف تي بي سيرد هذا السيرفر بالستجابة والتي هي عند طلب رفع ملف بالدالة UploadFile سنكتب هذا الكود بعد الكود الذي بالاعلي معدا كود طلب الستجابة لاننا سنرفع ملف (اي اننا سنرسل له بيانات) (ولا نحتاج اي بيانات من السيرفر مثل كود الدونلود) اقتباس: [TABLE="width: 100%"] [TR] [TD="class: alt2"] Dim Streamer As System.IO.Stream = clsRequest.GetRequestStream()
[/TD]Dim bFile() As Byte = System.IO.File.ReadAllBytes("الملف الذي تريد التنزيل فيه مع الاسم الذي تريد التنزيل به") Streamer.Write(bFile, 0, bFile.Length Streamer.Close() Streamer.Dispose() [/TR] [/TABLE] عند طلب تنزيل ملف سنستخدم الدالة DownloadFile و سنكتب هذا الكود بعد الكود الذي بالاعلي(في هذه الدالة نحتاج البيانات من السيرفر) اقتباس:
[TABLE="width: 100%"] [TR] [TD="class: alt2"]Dim streamer As Stream = ftpWebResp.GetResponseStream() Using fs As New IO.FileStream("مكان الملف", FileMode.Create) Dim buffer(2047) As Byte Dim read As Integer = 0[/TD] [/TR] [/TABLE] الكود التالي سيظل يعمل Loop حتي يتم تجميع كل البيانات(Bytes)
اقتباس:
عند طلب تجميع قائمة بالملفات والمجلدات الموجودة في السيرفر نستخدم الدالة ListDirectory سنكتب هذا الكود بعد الكود الذي بالاعلي(في هذه الدالة نحتاج البيانات من السيرفر مثل الدونلود)[TABLE="width: 100%"] [TR] [TD="class: alt2"]Do read = streamer.Read(buffer, 0, buffer.Length) fs.Write(buffer, 0, read) Loop Until read = 0 fs.Flush() fs.Close() streamer.Close() End Using[/TD] [/TR] [/TABLE] Dim ftpWebResp As FtpWebResponse = clsRequest.GetResponse()
الكود التالي سيظل البرنامج يعمل loop حتي يتم تجميع كل الملفات والمجلدات في ListviewDim streamer As Stream = ftpWebResp.GetResponseStream() Dim reader As New StreamReader(streamer) Dim LineRead As String اقتباس:
[TABLE="width: 100%"] [TR] [TD="class: alt2"]Do Until reader.EndOfStream LineRead = reader.ReadLine ListView1.Items.Add(LineRead) Loop streamer.Close()[/TD] [/TR] [/TABLE] |