تنفيذ مجلد تصميم ASP.NET لمحرك الأقراص الثابتة بالشبكة
الكاتب:Eve Cole
وقت التحديث:2009-06-30 15:39:42
كما ذكرنا عند تقديم مفهوم "القرص الصلب للشبكة"، فإن كل مستخدم لديه مساحة خاصة به على "القرص الصلب للشبكة". هذه هي الطريقة التي يتم التعامل بها في تصميم البرنامج التالي: يتم توفير مجلد ثابت للمستخدم، حيث يمكن للمستخدم إضافة/حذف مجلدات أو ملفات جديدة. كما هو موضح في الشكل 1، عند فتح صفحة الويب لأول مرة، سيتم إدراج جميع المحتويات الموجودة ضمن المجلد (بما في ذلك الملفات والمجلدات). إذا كنت تريد الدخول إلى مجلد المستوى التالي، فيمكنك تحديد المجلد والنقر فوق الزر "فتح" للدخول. سيتم شرح تنفيذ وظيفة عرض محتويات المجلد خطوة بخطوة أدناه.
الشكل 1: واجهة المستخدم الرئيسية |
1. تحميل الصفحة
نظرًا لأن دليل المستخدم الذي يوفره البرنامج ثابت، مثل c:UserDir، ويجب عرض جميع محتويات المجلد بعد تحميل الصفحة، فيجب تنفيذ العمليات المقابلة في Page_Load: حدد أولاً ما إذا كان المجلد موجودًا أم لا إذا لم يكن موجودًا، فأنت بحاجة إلى إنشائه أولاً ثم إدراج المحتويات ضمن المجلد، ويتم تنفيذ الكود على النحو التالي:
Page_Load باطلة خاصة (مرسل الكائن، System.EventArgs e) { // ضع رمز المستخدم هنا لتهيئة الصفحة
إذا (Page.IsPostBack==خطأ) { CurrentPath= @"c:UserDir"; // قم بتعيين الدليل الحالي if(Directory.Exists(@"c:UserDir")==false) // إذا كان الدليل غير موجود، فقم بإنشاء الدليل Directory. CreateDirectory( @"c:UserDir"); LoadDir(CurrentPath); // تهيئة دليل التحميل} }
|
يتم استخدام طريقة LoadDir(string FullPath) لسرد جميع محتويات المجلد، ويكون الرمز كما يلي:
LoadDir باطلة خاصة (سلسلة FullPath) { CurrentPath=FullPath; قيم ArrayList = new ArrayList(); سلسلة [] MyFiles،MyDirs؛ MyFiles = Directory.GetFiles(FullPath); // احصل على جميع الملفات في الدليل if(CurrentPath!=@"c:UserDir") // إذا لم يكن الدليل العلوي، أضف خيار "العودة إلى الدليل العلوي" { value.Add("العودة إلى الدليل العلوي"); }
value.AddRange(MyFiles); // إضافة ملفات MyDirs= Directory.GetDirectories(FullPath); // احصل على جميع الدلائل في هذا الدليلvalues.AddRange(MyDirs);//أضف الدلائل FileList.DataSource=values; FileList.DataBind(); // ربط البيانات } |
أولاً، حدد قيم كائن صفيف ArrayList لتخزين جميع محتويات دليل المستوى الأعلى (بما في ذلك أسماء المجلدات وأسماء الملفات). يقوم الأسلوب Directory.GetFiles() بإرجاع كافة أسماء الملفات في دليل المستوى الأعلى. نوع الإرجاع الخاص به هو مصفوفة سلسلة، لذا يجب تعريف كائن فئة السلسلة MyFiles لحفظ أسماء الملفات التي تم إرجاعها، يقوم Directory.GetDirectories() بإرجاع الكل الملفات الموجودة في أسماء المجلدات ذات المستوى الأعلى، كما تحدد أيضًا كائن صفيف السلسلة MyDirs لحفظها. بعد الانتهاء من ذلك، يمكنك إضافة مصفوفات MyFiles وMyDirs إلى كائن القيم. آخر ما عليك فعله هو إضافة مصدر بيانات وربط البيانات بكائن التحكم ListBox FileList. يجب توضيح شيء واحد: إذا لم يكن الدليل الحالي هو دليل المستوى الأعلى، فيجب أن تكون قادرًا على العودة إلى دليل المستوى الأعلى. للقيام بذلك، تحتاج إلى إضافة "العودة إلى دليل المستوى الأعلى". الخيار لقائمة الملفات.
2. عرض الدليل متعدد المستويات
باستخدام قطعتي التعليمات البرمجية المدرجتين في القسم السابق، يمكنك إدراج كل المحتوى في دليل المستوى الأعلى عند تحميل الصفحة. بالطبع، لا يكفي إدراج محتويات دليل المستوى الأعلى، كما هو الحال في نظام التشغيل Windows، فإن أدلة المجلدات الموجودة على القرص الثابت للشبكة متداخلة أيضًا، وهناك مستويان أو أكثر من أدلة المجلدات. ولهذا الغرض، يجب إجراء بعض المعالجة المقابلة حتى يتمكن المستخدمون من عرض محتويات المجلدات متعددة المستويات. يوفر تصميم الواجهة السابق زر "فتح". بعد أن يحدد المستخدم المجلد المقابل، انقر فوق الزر لعرض محتويات المجلد.
أضف الآن رمز الزر "فتح". انقر نقرًا مزدوجًا فوق الزر الموجود في لوحة "التصميم"، وسيقوم النظام تلقائيًا بإضافة حدث إليه. محتوى الكود كما يلي:
الفراغ الخاص btnOpen_Click(مرسل الكائن، System.EventArgs e) { if(FileList.SelectedItem.Text=="العودة إلى دليل المستوى العلوي") // العودة إلى دليل المستوى العلوي{ string ParentPath=Directory.GetParent(CurrentPath).ToString(); LoadDir(ParentPath); يعود؛ } آخر // فتح الدليل { LoadDir(FileList.SelectedItem.Text); } } |
يحدد البرنامج أولاً ما إذا كان المستخدم قد حدد "الرجوع إلى الدليل العلوي". إذا كان الأمر كذلك، فيجب عليك أولاً إرجاع اسم مجلد المستوى العلوي من خلال طريقة Directory.GetParent()، ثم استدعاء طريقة LoadDir() لعرض محتويات الدليل إذا لم يحدد المستخدم "الرجوع إلى المستوى العلوي". "الدليل" ولكن اسم مجلد، يمكنك استدعاء الأسلوب LoadDir() مباشرة. FileList.SelectedItem.Text هو اسم المجلد المحدد، والذي يتم استخدامه كمعلمة للأسلوب LoadDir().