الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

البحث عن ملفات تبعا لإمتدادها بواسطة ال Linq

بدأه Ayoub JAMAL EL IDRISSI في 27 ديسمبر 2007 · 3 رد · 2,060 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

مقدمة :

سنتابع في درسنا هذا ما بدأناه حول ال LINQ And STRING و هذه المرة سوف نرى كيف يمكننا عن طريق تقنية ال LINQ أن نقوم بالبحث عن ملفات في مجلد معين تبعا لل Extension الخاصة به، يعني مثلا لو أردنا ان نقوم بعمل برنامج بحث عن الملفات سوف يكون هذا الدرس اللبنة الأولى في الطريق الى تنفيذ هذا الأمر اذا أتمنى ان يكون هذا الدرس مفيدا و لو قليلا ، فلنبدأ

أحتياجات المثال :

أنشأ مشروع جديد من نوع ال Console Application

قم باستيراد فضاء الأسماء :

Imports System.LINQ

Imports System.IO

الكود :

سوف ترى أن الكود جد سهل و جد قصير لكنه مفيد :)

Dim Directory As String = "c:\"
Dim LstFiles = My.Computer.FileSystem.GetFiles(Directory)
Dim MyQuery = From File In LstFiles _
Where File.EndsWith(".txt") _
Select File
For Each HTMLFile In MyQuery
Console.WriteLine(HTMLFile)
Next
Console.ReadKey()

شرح الكود :

أولا أنشأنا متغير من نوع STRING ووضعنا فيه مسار المجلد او DRIVE الذي نريد البحث فيه و في مثالنا البحث سيكون في القرص C

ملاحظة :

البحث لن يكون في المجلدات الفرعية بل فقط الملفات الموجود في ال DRIVE اما بخصوص البحث في المجلدات الفرعية فهناك طرق أخرى

بعد ذلك و بمساعدة ال MY الجميلة قمنا باستغلال الدالة GetFiles من أجل أخذ لائحة الملفات الموجودة في القرص و طبعا الدالة GetFiles تقوم بأخذ مسار المجلد الذي تأتي منه بلائحة الملفات.

بعد حصولنا على لائحة الملفات نقوما الآن بانشاء ال Query و هي بسيطة وجد مفهومة :

Dim MyQuery = From File In LstFiles _
Where File.EndsWith(".txt") _
Select File

و بكل بساطة تقوم باختيار الملفات من لائحة الملفات تبعا للشرط وهو :

Where File.EndsWith(".txt")

يعني كل ملف نهايته او بالأحرى امتداده ".txt" تقوم ال Query باختياره.

و هكذا لا يبقى لنا الا تنفيذ ال Query عن طريق ال For Each بهذه الطريقة :

For Each HTMLFile In MyQuery
Console.WriteLine(HTMLFile)
Next

وعند تنفيذ الكود تظهر لنا في شاشة ال Console لائحة بجميع الملفات النصية

قد تتسائل ماذا لو اردت البحث عن ملفات بامتدادين او أكثر بمعنى اريد الحصول على جميع الملفات النصية بما فيها .doc .rtf .txt

أقول له ان الحل بسيط ما عليك الا تغيير السطر :

Where File.EndsWith(".txt")

بالسطر التالي :

Where File.EndsWith(".txt") Or File.EndsWith(".doc") Or File.EndsWith(".rtf")

و هكذا تحصل على مرادك

خاتمة :

رأينا في الدروس الثلاثة لحد الآن كيفية التعامل مع نصوص عادية في المرة المقبلة سوف نقوم برؤية كيفية التعامل مع ال Semi-Structured Data in Text Format يعني النصوص ذات تنظيم معين مثل ال CSV

الى ذلك الحين تقبلومني فائق التقدير

و السلام عليكم

البحث عن تعابير معينة في جملة معينة بواسطة Linq, LINQ And STRINGS

كيف يمكنك تعداد تكرار كلمة في نص معين بواسطة ال Linq., LINQ And STRINGS

تم تعديل هذه المشاركة بواسطة Ayoub JAMAL EL IDRISSI في 27 ديسمبر 2007 في 17:03

#2

مشكور على هذه المواضيع المتميزة و جزاك الله خيرا

تم تعديل هذه المشاركة بواسطة عمرالعمودي في 28 ديسمبر 2007 في 06:18

#3

جميل و الله

Formerly PYTHON

الراجل الحر .. حر و لو زمانه جار

يمشى ف طريقه .. لا يخشى الشوك ولا لحجار

#4

رااااااااااااااااائع

شرح بسيط وواضح .. والكود مفهوم جدا وسهل

بارك الله فيك .. وفي انتظار المزيد منك ان شاء الله

مواضيع مشابهة