تابع بوابة العرب على تويتر 


العودة   مركز بوابة العرب التعليمي > منتديات البرامج والانترنت > منتدى البرامج

إضافة رد
 
أدوات الموضوع
  #1  
قديم 09-04-2004, 02:34 AM
الصورة الرمزية أبورقيقة
أبورقيقة أبورقيقة غير متواجد حالياً
مستشار سابق
حاصل على شهادة تقدير
 
تاريخ التسجيل: Aug 2001
المشاركات: 1,896
افتراضي هل تعرف ما معنى المجلد (.) و (..) ؟




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

السلام عليكم ورحمة الله وبركاته


تحية طيبة للجميع ،،،

قد يبدو الموضوع أو السؤال غريب للبعض وقد لا يهم الكثيرين وقد يعرفه القلة ...

لا أعرف نقطة انطلاق مناسبة للموضوع ، ولكن دعونا نبدأ من الصفر ...


يتكون كل جهاز من قرص صلب أو أكثر وهو ما ما يمثل أعلى الهرم في سلسلة الملفات والمجلدات ، ولحسن الحظ يتكفل Bios بكل ما يخص القرص من حيث عدد رؤوسه ومساحته و ... .
بعد ذلك تأتي الأقسام أو البارتشن Partitions ، وما هي إلا تقسيم منطقي للقرص الصلب ، ومن هنا يبدأ تدخلنا ، حيث نتحكم بحجم القسم وعدد الأقسام ونوع نظام الملفات فيه .
والقسم Partition هو المهم لنا ويمكن اعتباره هو الجذر Root لموضوعنا هذا .
يأتي بعد ذلك ما نلمسه ونتعامل معه يومياً وهو المجلدات Folders والملفات Files .

بالتأكيد أنه عند وجود قسم فارغ فإن ما سنقوم بنسخه أو إنشاءه على ذلك القسم سيتم إنشاءه على الدليل الجذر لذلك القسم Root Folder ، وهذا الدليل أو المجلد الرئيسي هو بداية السلسلة للوصول لكافة الملفات والمجلدات في ذلك القسم .

ولنفترض أننا قمنا بتكوين مجلدين على القسم الفارغ وليكن K واسميناهما Fld1 و Fld2 .
للوصول لأي ملف أو مجلد لنقل داخل المجلد Fld1 لابد من معرفة في أي قسم يقع المجلد Fld1 وهو هنا K وهذه المعلومة نحصل عليها من الدليل الجذري Root Folder الموجود به المجلد Fld1 فنحصل على المسار :
K->Fld1
إلى هنا مازلنا في المستوى الأول من الهرم .

لننزل مستوى آخر ولنفترض أن ملف اسمه F1 داخل المجلد Fld1 يريد الوصول للملف F2 الموجود داخل المجلد Fld2 ، فيكيف يتم ذلك ؟

(مثلاً F1 هو برنامج المفكرة و F2 هو ملف نصي نريد فتحه)

يمكن ببساطة تمرير المسار الكامل للملف F2 وهو في هذه الحالة :
K->Fld2->F2
للملف F1 و في هذه الحالة استخدمنا طريقة تعرف بـ absolute path أو (المسار المطلق) ، وهو مسار يتم فيه ذكر القسم وهو K والمجلد Fld2 وأي مجلدات فرعية أخرى إن وجدت ، وفي النهاية اسم الملف F2 .

هذه الطريقة جيدة وتستخدم في الغالب ، فعند فتح أي ملف من برامجنا المعتادة كالرسام أو المفكرة أو الوورد أو الفوتوشوب (أي برنامج يستخدم شاشة فتح ملف) فيتم ذكر المسار المطلق للملف .

لكن تخيل أنك قمت بتصميم برنامج ما وتم وضع البرنامج التنفيذي في المجلد Fld1 وتم وضع مثلاً قاعدة البيانات في المجلد Fld2 .
تقوم بفتح قاعدة البيانات من داخل برنامجك وتضع المسار مثل الطريقة السابقة :
K->Fld2->Db
على افتراض ان اسم قاعدة البيانات Db .

بعد انتهاءك من تصميم البرنامج قمت بنسخه واعطاءه لصديقك ليجربه ، طبعاً ستقوم بنسخ المجلدين ، ولكن عند تنفيذ برنامجك سيحاول فتح قاعدة البيانات بالمنسار المذكور سابقاً ، فماذا لو كان صديقك قد وضع البرنامج في القسم D وليس K ؟

من هنا ظهرت مشكلة وهي أن المسار المطلق غير نافع في بعض الحالات ، مثل ما حصل مع مثالنا السابق .
لذلك ظهرت طريقة جديدة وهي استخدام المسار النسبي relative path .
وهي طريقة يتم فيها اعطاء مسار بناءً على موقعنا الحالي والذي يعتبر هو نقطة الانطلاقة للمسار النسبي relative path root .

لنعود لمثال قاغدة البيانات السابق ، فلو أراد برنامجنا الوصول لقاعدة البيانات بشكل صحيح بغض النظر عن المكان الموجودين به وبغض النظر عن كونهما في القسم D أو K ، فعندها يجب على البرنامج الوصول لقاعدة البيانات من خلال المسار النسبي .
بما أن البرنامج موجود في المجلد Fld1 وقاعدة البيانات موجود في المجلد Fld2 والمجلدين موجودين في نفس المكان ، فكل ما على البرنامج القيام به هو الرجوع لمستوى أعلى بدرجة واحدة من موقعه الحالي ومن ثم الدخول للمجلد Fld2 .
بشكل أوضح :
البرنامج موجود هنا *->**->Fld1->Myprog
حيث :
* هي القسم ، أي كان C أو D أو K أو ...
** هي المجلدات الفرعية إن وجدت ، مثلاً MyDoc\Old\Arch .
Myprog هو البرنامج الذي يقوم بفتح قاعدة البيانات .

فعلى البرنامج الرجوع لمستوى أعلى ليكون موقعه الحال هو :
*->**->Myprog
بحيث يصيح هو والمجلد Fld2 بنفس المستوى .

بعد ذلك يدخل في المجلد Fld2 ليصبح موقعه هو نفس موقع قاعدة البيانات :
*->**->Fld2->Myprog

فيقوم بفتح قاعدة البيانات .

لكل هذا نظري وما يتم في الواقع هو استخدام للمجلد المبهم (..) فهذا المجلد ما هو إلا المسار المطلق للمجلد بالمستوى الأعلى بدرجة واحدة من المجلد الحالي .
لنفترص أننا داخل المجلد :
c:\windows\command
فعند ذلك فإن المجلد (..) سيكون هو مؤشر للمسار :
c:\windows
والذي هو مسار مطلق .

مثال عملي :
سنقوم باستخدام الامر CD التابع للدوس Dos والذي من مهمته هو تغيير المجلد الحالي :
مثلاً نحن في المجلد الرئيسي للقرص C وأردنا الدخول للمجلد windows فعندها نقوم بكتابة الامر التالي :
cd windows


[IMG]../../edu-teachers/gentle/10070_207594075d0af2536a.gif[/IMG]

بما أننا لم نذكر المسار الكامل للمجلد windows فعندها سيتم استخدام المجلد (..) لنحصل على المسار المطلق للمجلد الجالي وهو هنا c:\ ويقوم بإضافة المجلد المطلوب ليصبح الأمر على النحو التالي :
cd c:\windows

[IMG]../../edu-teachers/gentle/10070_278544075d16111100.gif[/IMG]

بعد إن دخلنا داخل المجلد windows لنفترض أننا نريد الدخول لمجلد موجود بنفس مستوى المجلد windows واسمه nc5 .
يمككنا استخدام المسار المطلق ويكون الأمر على النحول التالي :
cd c:\nc5

لكن ماذا لو كان المجلدين موجودين داخل مجلدات بتفرعات تصل إلى 6 أو 7 مجلدات فرعية :
c:\abc\fd1\ttt32\kde\linux\foo\windows
c:\abc\fd1\ttt32\kde\linux\foo\nc5

فهل ستقوم بكتابة المسار المطلق من أوله لأخره للوصول لمجلد هو جار جنب للمجلد الحالي ؟؟؟؟؟

فالإجابة لا ، بل سنستخدم المسار النسبي .

كيف ذلك ؟

يتم ذلك من خلال وضع نقطتين (..) وشرطة مائلة للتعبير عن أننا نريد الرجوع لمستوى أعلى بدرجة واحدة من المجلد الحالي ، فيكون الأمر بالشكل التالي :
cd ..\nc5

[IMG]../../edu-teachers/gentle/10070_309604075d1eb7346c.gif[/IMG]

يمكن استخدام المسار المطلق اكثر مرة ، مثلاً لو كنا في المجلد :
c:\windows\command

وأردنا الوصول لنفس المجلد nc5 ، فعندها يكون الأمر بالشكل التالي :
cd ..\..\nc5

[IMG]../../edu-teachers/gentle/10070_262604075e12a01691.gif[/IMG]

ويمكنك القياس على هذا والرجوع لمثال قاعدة البيانات وإيجاد الحل المناسب .


لم يبقى إلا المجلد (.) وهو يدل على المسار الحالي للمجلد الحالي ، فلو كنا في المجلد :
c:\windows\command

فسيكون المجلد (.) هو نفس ذلك المسار .

إذاً ما الفائدة منه ؟

تتمثل الفكرة الرئيسية في أنه في حال وجود ملف في مكان معرف على انه مسار عام (بمعنى تم تعريف في المتغير Path في الملف autoexec.bat) ، ويوجد ملف بنفس الاسم في مسارك الحالي ولكنك تريد نسخ الملف الموجود في المسار الحال وليس الموجود في المسار العام ، فيجب ذكر المسار المطلق للملف أو أن تستخدم المجلد (.) ليحل محل المسار الحالي وتضيف له اسم الملف .
مثلاً لنسخ الملف command.com الموجود داخل المجلد c:\windows إلى المجلد c:\nc5 ونحن داخل المجلد windows :

[IMG]../../edu-teachers/gentle/10070_262604075e155c92af.gif[/IMG]


كلمة أخيرة :
صراحة لا يتم استخدام هذه المجلدات بشكل واضح داخل الويندوز إلا من قبل القلة القليلة من المبرمجين الذي يعرفون معنى هذه المجلدات ، ولكن لو نظرنا للجانب الآخر وألقينا نظرة على نظام التشغيل Linux فلن ولن تجدامر من أوامر Shell داخل ملفات sh أو غيرها لا يحتوي على المجلدين موضوع حديثنا ...

لذلك هذه نقطة تحسب للينكس على الويندوز ، لكونه على الأقل ذكرها في ملفات ليجعل المستخدم على الأقل يتساءل عن معنى هذه النقاط ...

خارج الموضوع :
حاول البحث ومعرفة المصطلح foo .

أتمنى أن يكون الموضوع خفيف عليكم ولم يسبب لكم صداع ،،،

دمتم بألف خير .
__________________
Experience is NOT the best teacher, Other's experiences are the best teachers
Easier done than said







رد مع اقتباس
  #2  
قديم 09-04-2004, 02:51 AM
الرمان الاحمر الرمان الاحمر غير متواجد حالياً
 
تاريخ التسجيل: Apr 2001
المشاركات: 9,571
افتراضي

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


وعليكم السلام ورحمة الله وبركاته


يعطيك الف عافية على هذا الشرح اخي المشرف أبورقيقة
__________________
رد مع اقتباس
  #3  
قديم 09-04-2004, 02:52 AM
الرمان الاحمر الرمان الاحمر غير متواجد حالياً
 
تاريخ التسجيل: Apr 2001
المشاركات: 9,571
افتراضي

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


وعليكم السلام ورحمة الله وبركاته


يعطيك الف عافية على هذا الشرح اخي المشرف أبورقيقة
__________________
رد مع اقتباس
  #4  
قديم 09-04-2004, 03:11 AM
الصورة الرمزية nmfaraj911
nmfaraj911 nmfaraj911 غير متواجد حالياً
 
تاريخ التسجيل: Jan 2002
المشاركات: 3,894
افتراضي

جميل جدا ، بارك الله فيك ، بيئة ويندوز الرسومية جعلت الكثير من المستخدمين يتجنبون ............... وجع الرأس
رد مع اقتباس
  #5  
قديم 09-04-2004, 12:57 PM
Love143 Love143 غير متواجد حالياً
 
تاريخ التسجيل: Aug 2001
المشاركات: 2,301
افتراضي

مشكور اخي على الشرح ويعطيك العافيه
رد مع اقتباس
  #6  
قديم 09-04-2004, 03:27 PM
ابو منهل ابو منهل متواجد حالياً
شكر وتقدير
 
تاريخ التسجيل: Dec 2002
المشاركات: 7,604
افتراضي

الف شكر اخي الكريم ابو رقيقة على الشرح الجميل
طبعاُ من يتعامل مع الدوس لا بد له من معرفة هذه الامور والتي تعد اساسية ولا يمكن الاستغناء عنها ولكن مع وجود نظام الوندوس فقد ارتاح المستخدم العادي من هذ الاوامر ....
__________________

الرضى والتسليم نهاية العلم والتعليم
رد مع اقتباس
  #7  
قديم 09-04-2004, 04:13 PM
generation_1 generation_1 غير متواجد حالياً
 
تاريخ التسجيل: Jul 2002
المشاركات: 1,301
افتراضي

اشكرك استاذي ابو رقيقة
رد مع اقتباس
إضافة رد

أدوات الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

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


الساعة الآن 07:15 AM.


جميع الحقوق محفوظة لشبكة بوابة العرب
New Page 4
 المركز التعليمي منتديات الحوار تسجيل النطاقاتخدمات تصميم مواقع الإنترنت  إستضافة مواقع الإنترنت  الدعم الفني لإستضافة المواقع
   متجر مؤسسة شبكة بوابة العرب   الدردشة الصوتية والكتابية  مركـزنا الإعـلامي  مـن نـحــن  مقــرنـا  قسم إتفـاقيات الإستــخــدام
Copyright © 2000-2014 ArabsGate. All rights reserved
To report any abuse on this website please contact abuse@arabsgate.com