تمرين - العمل مع نظام الملفات
يمكنك استخدام .NET للبحث عن معلومات حول الملفات والمجلدات وإرجاعها.
تمتلك Tailwind Traders العديد من المتاجر الفعلية في جميع أنحاء العالم. كل ليلة، ينشئ كل متجر ملفا باسم sales.json يحتوي على إجمالي جميع المبيعات لهذا اليوم. يتم تنظيم هذه الملفات في مجلدات مسماة بمعرف المتجر.
إشعار
تستخدم هذه الوحدة النمطية .NET CLI (واجهة سطر الأوامر) وVisual Studio Code للتطوير المحلي. بعد الانتهاء من هذه الوحدة، يمكنك تطبيق المفاهيم التي تعلمتها باستخدام بيئة تطوير مثل Visual Studio (لنظام التشغيل Windows) أو Visual Studio لـ Mac (لنظام التشغيل macOS) أو التطوير المستمرفي Visual Studio Code (لأنظمة التشغيل Windows وLinux وmacOS).
تستخدم هذه الوحدة النمطية .NET 8.0 SDK. تأكد من تثبيت .NET 8.0 عن طريق تشغيل الأمر التالي في الوحدة الطرفية للأوامر المفضلة لديك:
dotnet --list-sdks
يظهر إخراج مشابه للمثال التالي:
6.0.317 [C:\Program Files\dotnet\sdk]
7.0.401 [C:\Program Files\dotnet\sdk]
8.0.100 [C:\Program Files\dotnet\sdk]
تأكد من إدراج إصدار يبدأ بـ 8. إذا لم يتم سرد أي منها أو لم يتم العثور على الأمر، فقم بتثبيت أحدث .NET 8.0 SDK.
استنساخ المشروع
في هذا التمرين، يمكنك كتابة برنامج .NET الذي يبحث في دليل ودلائله الفرعية عن الملفات المسماة sales.json.
تم إنشاء مشروع بداية لك بالفعل. يمكنك استنساخه باستخدام المحطة الطرفية المتكاملة في Visual Studio Code.
فتح Visual Studio Code.
في القائمة الرئيسية، حدد عرض>المحطة الطرفية لفتح نافذة طرفية.
(اختياري) في نافذة المحطة الطرفية، قم بالتغيير إلى دليل تريد نسخ الملفات إليه، مثل
c:\MyProjects.في نافذة المحطة الطرفية، قم بتشغيل الأمر التالي لاستنساخ مشروع البداية والانتقال إلى المشروع المستنسخ:
git clone https://github.com/MicrosoftDocs/mslearn-dotnet-files && cd mslearn-dotnet-filesشغّل الأمر التالي لإنشاء مشروع وحدة تحكم .NET جديد:
dotnet new console -f net8.0 -n mslearn-dotnet-files -o .شغّل الأمر التالي لفتح مشروع .NET جديد في نفس مثيل Visual Studio Code:
code -a .تلميح
في هذه المرحلة، قد يطالبك Visual Studio Code بأن الأصول المطلوبة لإنشاء المشروع وتشغيله مفقودة.
حدد المثلث ذي علامة التعجب ثم حدد Relaunch terminal لإضافة الملفات التي تسمح لـ Visual Studio Code بتشغيل المشروع وتصحيحه.
في نافذة Explorer، ضمن mslearn-dotnet-files، قم بتوسيع مجلد stores وكل مجلد من المجلدات ذات الترقيم بداخله.
العثور على ملفات sales.json
تنشئ المهام التالية برنامجا للعثور على جميع ملفات sales.json في كافة مجلدات mslearn-dotnet-files المشروع.
تضمين مساحة الاسم System.IO
في نافذة Explorer، حدد
Program.csالملف لفتحه في المحرر.
الصق التعليمات البرمجية التالية في السطر الأول من ملف
Program.csلاستيراد مساحتي الاسمSystem.IOوSystem.Collections.Generic:using System.IO; using System.Collections.Generic;
إشعار
بدءا من .NET 6، يتم تضمين العبارات في التعليمات البرمجية السابقة تلقائيا في مشروع جديد عن طريق مجموعة الخصائص ImplcitUsings . لأنه تم تحديد -f net8.0 العلامة عند إنشاء مشروع وحدة تحكم جديدة، يتم إضافتها ضمنيًا. ومع ذلك، إذا كنت تعمل مع مشروع قديم، فيجب تضمينها في Program.cs الملف، ولا يؤثر ذلك على هذا المشروع إذا تركتها في الملف.
قم بكتابة دالة للعثور على ملفات sales.json
قم بإنشاء دالة جديدة تسمى FindFiles، والتي تأخذ معلمة folderName.
استبدل سطر Console.WriteLine("Hello, World!"); بالتعليمات البرمجية التالية:
IEnumerable<string> FindFiles(string folderName) { List<string> salesFiles = new List<string>(); var foundFiles = Directory.EnumerateFiles(folderName, "*", SearchOption.AllDirectories); foreach (var file in foundFiles) { // The file name will contain the full path, so only check the end of it if (file.EndsWith("sales.json")) { salesFiles.Add(file); } } return salesFiles; }أدرج التعليمات البرمجية التالية أسفل عبارات
usingلاستدعاء دالةFindFiles. يتم تمرير هذه التعليمات البرمجية في اسم مجلد stores كموقع للبحث عن الملفات.var salesFiles = FindFiles("stores"); foreach (var file in salesFiles) { Console.WriteLine(file); }اضغط على Ctrl+S (أو Cmd+S macOS) لحفظ ملف
Program.cs.
قم بتشغيل البرنامج.
أدخل الأمر التالي في نافذة الوحدة الطرفية لتشغيل البرنامج:
dotnet runيجب أن يظهر البرنامج الإخراج التالي:
stores/sales.json stores/201/sales.json stores/202/sales.json stores/203/sales.json stores/204/sales.json
ممتاز لقد كتبت برنامج سطر أوامر بنجاح، والذي سوف يجتاز جميع المجلدات في دليل stores ويدرج جميع ملفات sales.json التي تم العثور عليها.
في هذا المثال، كان المسار إلى دليل المخازن بسيطا إلى حد ما، وفي دليل العمل للبرنامج. في الوحدة التالية، ستتعلم كيفية إنشاء بنيات معقدة تعمل عبر أنظمة التشغيل باستخدام الفئة Path.
هل واجهتك مشكلة؟
إذا كان لديك أي مشاكل في تشغيل البرنامج، فإليك التعليمات البرمجية الكاملة لملف Program.cs. استبدل محتويات ملف Program.cs بهذه التعليمة البرمجية:
var salesFiles = FindFiles("stores");
foreach (var file in salesFiles)
{
Console.WriteLine(file);
}
IEnumerable<string> FindFiles(string folderName)
{
List<string> salesFiles = new List<string>();
var foundFiles = Directory.EnumerateFiles(folderName, "*", SearchOption.AllDirectories);
foreach (var file in foundFiles)
{
// The file name will contain the full path, so only check the end of it
if (file.EndsWith("sales.json"))
{
salesFiles.Add(file);
}
}
return salesFiles;
}