تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
درس- تعلم كيف تصنع برنامج ftp بالتفصيل + مثال
#1
كاتب الموضوع : 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


("ftp://" & "مكان الملف الذي تريد التعامل معه"))
[/TD]
[/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()
Dim bFile() As Byte = System.IO.File.ReadAllBytes("الملف الذي تريد التنزيل فيه مع الاسم
الذي تريد التنزيل به")
Streamer.Write(bFile, 0, bFile.Length
Streamer.Close()
Streamer.Dispose()
[/TD]
[/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)
اقتباس:
[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]

عند طلب تجميع قائمة بالملفات والمجلدات الموجودة في السيرفر نستخدم الدالة ListDirectory سنكتب هذا الكود بعد الكود الذي بالاعلي(في هذه الدالة نحتاج البيانات من السيرفر مثل الدونلود)
Dim ftpWebResp As FtpWebResponse = clsRequest.GetResponse()
Dim streamer As Stream = ftpWebResp.GetResponseStream()
Dim reader As New StreamReader(streamer)
Dim LineRead As String
الكود التالي سيظل البرنامج يعمل loop حتي يتم تجميع كل الملفات والمجلدات في Listview
اقتباس:
[TABLE="width: 100%"]
[TR]
[TD="class: alt2"]Do Until reader.EndOfStream
LineRead = reader.ReadLine
ListView1.Items.Add(LineRead)
Loop
streamer.Close()[/TD]
[/TR]
[/TABLE]

هذا مثال من صنعي لبرنامج FTP

http://www.mediafire.com/download.php?joinlt3yozi



تم بحمد الله

تحياتي
}}}
تم الشكر بواسطة: م.حسن , خالد الشقويري


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  معلومة :: تعلم كيف تحفظ صورة في My.Settings بدون الإحتياج إلى مسارها! أسامة أحمد 13 6,238 أمس, 01:13 AM
آخر رد: أبو جودة
  كيف تتعامل مع برنامج الإكسيل من برنامجك rinawi 7 6,643 12-11-22, 12:11 AM
آخر رد: خالد العصاوي
  نظرة على DropBox SDK و التعامل معها +برنامج رفع و تحميل ملفات ابو ليلى 4 4,880 08-09-22, 11:54 AM
آخر رد: saif2023
  برنامج مبيعات ومشتريات وإدارة أعمال ( الفاتورة الإلكترونية ) yassoo1985 2 2,257 04-06-22, 01:14 PM
آخر رد: yassoo1985
Heart طلب برنامج Advanced Installer أبو خالد الشكري 0 1,419 16-05-22, 09:12 PM
آخر رد: أبو خالد الشكري
  أهم طرق إدارة المخازن وتطبيقها على برنامج مخازن وارد ومنصرف Menna ahmeed 0 1,987 27-04-22, 12:52 PM
آخر رد: Menna ahmeed
  طريقة إنشاء برنامج طباعة ملصقات الباركود ملهمـ 1 4,406 22-12-21, 05:09 PM
آخر رد: alessam4pro
Heart [VB.NET] برنامج ادارة المطاعم و الكافيهات mgr21002100 6 6,677 14-01-21, 07:59 PM
آخر رد: abarrak
  مثال للتعامل مع الجداول المرتبطة - عن طريق الكلاسات ابو ليلى 25 15,203 04-10-20, 06:16 PM
آخر رد: محمد بن عطية
  تفعيل برنامج Visual Studio 2019 Adilo idabdellah 4 11,540 20-05-20, 11:48 AM
آخر رد: الفاضي

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم