الأربعاء، 25 سبتمبر 2013

كيف تتم عملية النسخ واللصق برمجيا ؟

من طرف hocine amari  |  نشر في :  6:15 ص 0 تعليقات

وتعد من أشهر العمليات التي يقوم بها مستخدمو الحواسيب، بحيث لا غنى لنا عنها، كم من مرة يعجبك مقطع صوتي معين أو صورة معينة أو فيديو معين على جهاز صديقك فتقوم بنسخه ولصقه على حاسوبك، لكن هل سألت نفسك يوما: مالذي يحدث حينما أقوم بنسخ الملف وكيف يتم تكوين ملف جديد بنفس محتوى الملف المنسوخ؟



في درس اليوم إن شاء الله سوف نتعرف على عملية النسخ واللصق، لكن دعونا نتعرف في الأول على حقيقة الملفات Files.

الملف File هو مجموعة من البيانات التي تنتمي إلى نفس النوع، وتنقسم الملفات إلى نوعين:



الملفات النصية Text File : ويكون محتوى الملف عبارة عن بيانات نصية.
الملفات الثنائية Binary File : تكون على شكل بيانات ثنائية Binary Data، أي عبارة عن متتاليات وسلاسل من الأصفار والآحاد التي بعد أن تتم قراءتها ومعالجتها تتحول إلى شيء معين (صورة، فيديو، مقطع صوتي،…)



عملية النسخ:

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



النسخ واللصق برمجيا:

لنأخذ أي ملف موجود على حاسوبنا، ولنفترض أن عندي صورة موجودة على الوحدة C : من القرص الصلب، أي أن مسار الوصول إلى هذه الصورة هو C:\\1.png .

سنعلن عن مسار الملف الأصلي في متغير نصي:

string file1 = @”c:\1.PNG”;

وبالمثل سنعلن عن مسار الملف الثاني أي الملف الذي سينتج عن عملية النسخ:

string file2 = @”c:\Copy.PNG”;

الآن سنقوم بفتح الملف الأول لقراءة بياناته الثنائية:

FileStream fs1 = new FileStream(file1, FileMode.Open);

ثم نقوم بإنشاء ملف فارغ خالٍ من أية بيانات ثنائية على مسار الملف الثاني:

FileStream fs2 = new FileStream(file2, FileMode.Create);

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

BinaryReader br = new BinaryReader(fs1);

BinaryWriter bw = new BinaryWriter(fs2);

الآن هيأنا كل شيء، بقي فقط تعبئة الملف الثاني بالبيانات الثنائية للملف الأول، وذلك عبر تكرار يذهب من أول بايت إلى آخر بايت في الملف الأول، وكلما وصل إلى بايت معين يقوم بكتابته في الملف الثاني، كما يلي:

for (int i = 0; i <= br.BaseStream.Length – 1; i++)

{

bw.Write(br.ReadByte());

}

في الأخير نقوم بإغلاق القارىء BinaryReader والكاتب BinaryWriter.

br.Close();
bw.Close();

ملخص عملية النسخ واللصق:

فتح الملف المراد نسخه.
إنشاء ملف فارغ.
كتابة بيانات الملف الأول في الملف الثاني
النتيجة ملفان متشابهان.
أتمنى أن تكون قد إستفدت



التسميات :
hocine amari

كاتب مختص في مدونة مفكر التقنية

اشتراك

الحصول على كل المشاركات لدينا مباشرة في صندوق البريد الإلكتروني

شارك الموضوع

مواضيع ذات صلة

0 التعليقات:

back to top