| الموضوع السابق | الموضوع التالي |
الغرض
نسخ مجموعة من الملفات ذات النوع الواحد بالإضافة إلى الملفات المرتبطة مع كلٍ منها. انظر الشرح أدناه لمزيد من التوضيح.
الصيغة
procedure CopyFilesExt(SourceDir, Extension, TargetDir: string; SelSource: Boolean = False; SelTarget: Boolean = False);
الوسائط (Parameters)
| SourceDir | المجلد المصدر حيث توجد الملفات المطلوب نسخها. يهمل إذا كانت قيمة البارامتر SelSource هي True. | |
| Extension | امتداد الملف، و الذي يحدد نوع الملفات التي سيتم نسخها (لا تكتب النقطة الفاصلة بين الاسم و الامتداد). | |
| TargetDir | المجلد الهدف الذي تريد نسخ الملفات إليه. يهمل إذا كانت قيمة البارامتر SelTarget هي True. | |
| SelSource | بارامتر اختياري يحدد ما إذا سيتم عرض نافذة اختيار المجلد المصدر. القيمة الافتراضية False. | |
| SelTarget | بارامتر اختياري يحدد ما إذا سيتم عرض نافذة اختيار المجلد الهدف. القيمة الافتراضية False. |
الشرح
قد تبدو لك فكرة هذا الإجراء مسلية! فأنت تحدد نوع الملفات التي تريد نسخها (بتحديد الامتداد في البارامتر Extension) فيقوم الإجراء بنسخ جميع الملفات التي تحمل ذلك الامتداد، ثم - و لكل ملف من تلك الملفات المنسوخة - ينسخ أي ملف يحمل نفس الاسم مهما كان امتداده.
لقد تم تصميم هذا الإجراء للقيام بمهمة النسخ الاحتياطي (Backup) للبرامج التي تقوم تلقائياً بإنشاء ملفات مرتبطة بملف أساسي على أساس الاسم و اختلاف الامتداد. فمثلاً عند إنشاء جدول في بارادوكس باسم Table1 فإن الملف سيكون اسمه Table1.db، و لكن في نفس الوقت قد يقوم البرنامج بإنشاء ملف بيانات ثنائية باسم Table1.mb و ملفات فهارس باسم Table1.xg0 و Table1.xg1، إلخ. كذلك عند تصميم نافذة في دلفي فإن الملف المصدر يكون اسمه مثلاً Unit1.pas و لكن سيتم أيضاً إنشاء ملف باسم Unit1.dfm، و عند تصريف البرنامج سيتم إنشاء ملف باسم Unit1.dcu.
لنفرض أن لديك 5 جداول بارادوكس في المجلد C:\DataFiles و أسماؤها هي Table1.db و Table2.db و Table3.db و Table4.db و Table5.db، و تريد نسخها احتياطياً إلى المجلد C:\BackupFiles. لتكون عملية النسخ الاحتياطي كاملة و صحيحة يجب نسخ تلك الملفات الخمسة، بالإضافة إلى أية ملفات ثنائية أو ملفات فهارس مرتبطة بكل ملف من تلك الملفات الخمسة. و عليه سيكون استدعاء الإجراء CopyFilesExt كالتالي تقريباً:
CopyFilesExt('C:\DataFiles', 'db', 'C:\BacupFiles', False, False);
لاحظ أننا في البارامتر الثاني (Extension) كتبنا الامتداد فقط ('db') دون النقطة التي تسبق الامتداد في اسم الملف ('.db').
سيقوم الإجراء بنسخ الملف Table1.db ثم سينسخ جميع الملفات التي تحمل الاسم Table1 مهما كان امتدادها، ثم يعود فينسخ الملف Table2.db ثم سينسخ جميع الملفات التي تحمل الاسم Table2 مهما كان امتدادها، و هكذا.
إذا كانت قيمة البارامتر SelSource هي True فإن البارامتر SourceDir يهمل، و يتم عرض نافذة حوار لتحديد المجلد المصدر الذي يجب على المستخدم أن يحدده أو لن تتم عملية النسخ. أما إذا كانت قيمة البارامتر SelSource هي False فإن البارامتر SourceDir يتم استعماله كمجلد مصدر دون عرض نافذة اختيار المجلد.
إذا كانت قيمة البارامتر SelTarget هي True فإن البارامتر TargetDir يهمل، و يتم عرض نافذة حوار لتحديد المجلد المصدر الذي يجب على المستخدم أن يحدده أو لن تتم عملية النسخ. أما إذا كانت قيمة البارامتر SelTarget هي False فإن البارامتر TargetDir يتم استعماله كمجلد مصدر دون عرض نافذة اختيار المجلد. إذا تم عرض نافذة حوار لتحديد المجلد الهدف فإنه يمكن للمستخدم من خلالها أن ينشيء مجلداً جديداً و اختياره كمجلد هدف.
أعلى الصفحة
| الموضوع السابق | الموضوع التالي |