بتـــــاريخ : 2/26/2011 3:15:34 AM
الفــــــــئة
  • الحـــــــــــاسب
  • التعليقات المشاهدات التقييمات
    0 1318 0


    مشروع Arabic PHP .NET Framework : م IO الدرس السادس : System.IO

    الناقل : elmasry | العمر :42 | الكاتب الأصلى : الحسين | المصدر : www.arabteam2000-forum.com

    كلمات مفتاحية  :

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

    طريقه إستخدام هذا الإطار :
    إستجابه لطلب شرح إستخدام ذلك الإطار أحب أن أوضح التالي
    - أولا هذا الإطار يعمل مع الإصدار الخامس للبي أتش بي , لما تم عليها من تحسين لمستوي البرمجه الكائنيه بها
    - هذا الإطار هو عباره عن مجموعه كبيره من الفئات classes يمكننا إستخدامها كما يروق لنا ولا توجد طريقه محدده للإستخدام
    - لكني أفضل إستخدام هذه الفئات من خلال أني أقوم بعمل فهرس باسم bin ويتم وضعه داخل الفهرس الرئيسي للموقع , وهذه الإستراتيجيه أقوم دائما بشرحها عندما أشرح أحدي المجموعات التابعه للإطار
    - كما أنني أدرج مثال بكل مجموعه يمكننا أستخدامه مباشرة لإختبار المجموعه المشروحه

    فوائد الإطار
    - من سيتابع مع هذه الشروحات البسيطه سوف يدرك مدي أهميه أننا نحتاج التفكير بشكل منظم
    - بالإضافه إلي السهوله للحصول علي الوظيفه المطلوبه , فعلي سبيل المثال لو إحتجنا داله معينه للقيام برسم شئ فأين يمككنا أن نجدها
    الأن بكل بساطه نعلم أن وظائف الرسم والتلوين موجوده بالمجموعه System.Drawing وهكذا
    - بالإضافه إلي أن قيمه هذا الإطار سوف تظهر في أخر دروس عندما نشرح كيف يمكننا التعامل مع الويب سرفس WebService من خلال الأطار
    وكيف سوف ننشئ كونترولات خاصه بنا بالإضافه للكنترولات التي قمت بإعدادها في هذا الإطار
    - علي العموم الموضوع إن شاء الله مثير وأنا مش قادر أقول كل حاجه الأن لكني أرجو متابعه المواضيع القادمه والله الموفق


    المجموعة System.IO
    توفر لنا هذه المجموعة القيام بالمهام الخاصه بالتعامل مع الملفات والفهارس

    تضم هذه المجموعة فئات عديدة ومنها
    + FileStream Class
    تتميز هذه الفئة بالتالي :
    - هذه الفئة مشتقة من الفئة Object الموجودة بالمجموعة System
    - تمكننا تلك الفئه من التعامل مع الملفات . لإجراء عمليات الكتابه والقراءه من محتويات الملف وعمليات أخري
    - لاحظ أن طبيعه هذه الفئه أنها تتعامل مع الملف علي أساس أنه محتوي (Container) للبيانات ,
    ولا تتعامل مع الملف علي أساس أنه ملف تابع لمحتوي الهاردسك أو نظام التشغيل File System

    + FileSystemInfo Class
    تتميز هذه الفئة بالتالي :
    - هذه الفئة مشتقة من الفئة Object الموجودة بالمجموعة System
    - هي فئه مجرده abstract (لا يمكننا أن نخلق منها كائنات)
    - تتميز هذه الفئه بأنها تحتوي علي الوظائف المشتركه بين الملفات والفهارس
    - تمكننا من التعامل مع الملفات والفهارس علي أساس أنهما جزء من محتوي الهاردسك أو نظام التشغيل File System
    لذلك هي خاصه لإجراء عمليات الحذف وتغير الأسماء و القص والنسخ للملفات والفهارس إلخ

    + FileInfo Class
    تتميز هذه الفئة بالتالي :
    - هذه الفئة مشتقة من الفئة FileSystemInfo
    - تتميز بمميزات الفئه FileSystemInfo لكنها تتعامل فقط مع الملفات

    + DirectoryInfo Class
    تتميز هذه الفئة بالتالي :
    - هذه الفئة مشتقة من الفئة FileSystemInfo
    - تتميز بمميزات الفئه FileSystemInfo لكنها تتعامل فقط مع الفهارس


    ويوضح الشكل التالي تركيب المجموعة System.IO
    (لاحظ أن الأعضاء أمثال الدوال والثوابت والمتغيرات التي تحتها خط تعبر عن أعضاء إستاتيكية Static members
    والأعضاء المائلة italic هي أعضاء مجردة abstract
    وأيضا لم أقم بإدراج الأعضاء التي أري أنها يجب أن تكون ذات مستوي رؤية internal أو Friend )

    Resized to 72% (was 907 x 714) - Click image to enlargePosted Image


    لاحظ أن المجلد System.IO يحتوي علي التالي
    - الملف DirectoryInfo.php يحتوي علي الفئة DirectoryInfo
    - الملف FileInfo.php يحتوي علي الفئة FileInfo
    - الملف FileStream.php يحتوي علي الفئة FileStream
    - الملف FileSystemInfo.php يحتوي علي الفئة FileSystemInfo
    - الملف IOException.php يحتوي علي الفئة IOException
    - الملف SeekOrigin.php يحتوي علي الواجهة SeekOrigin

    كيف يمكننا إستخدام هذه الفئات :
    سوف ندرج في مجلد ال bin مجموعة ال System.IO كما يلي
    Posted Image

    يمكننا إستخدام تلك الفئات من خلال عمل تضمين including لمحتويات الملف التالي
    WebApplication6/bin/System.IO.php
    وهذا هو محتوي الملف

    <?
    include_once "System.php";

    include_once "System.IO/SeekOrigin.php";
    include_once "System.IO/IOException.php";
    include_once "System.IO/FileStream.php";
    include_once "System.IO/FileSystemInfo.php";
    include_once "System.IO/FileInfo.php";
    include_once "System.IO/DirectoryInfo.php";
    ?>


    مثال
    <script language="php">
    include_once "../bin/System.IO.php";
    include_once "../bin/System.DateTime.php";

        try {
            $dir1 = new DirectoryInfo("d:\\phptest");

            $dir1->CreateSubDirectory("subDir");
            $dir1->Rename("tttttt1");

            $t1 = Time::Now();

            echo $dir1->Size() / (1024*1024) . " mb";

            $t2 = Time::Now();
            $t2->Subtract($t1);
            echo "<br> time elapsed : " . $t2->ToString();

        }catch(IOException $ex) {
            echo $ex->getMessage();
        }
    </script>


    مثال أخر
    <script language="php">
    include_once "../bin/System.IO.php";

        try {
            $file1 = new FileInfo("test2.txt");

            $file1->MoveTo("d:\\");
            if( !$file1->Rename("renamedTest2.txt") )
                throw new IOException("can't rename file exists");
        }catch(IOException $ex) {
            echo $ex->getMessage();
        }
    </script>


    وقد أرفقت هنا مثال لإستخدام المجموعة System.IO
    (لاحظ أن هذا الإطار يعمل مع الإصدار الخامس PHP5)

    في إنتظار اي إستفسار في هذا الموضوع

    انتظروني بعد العيد إن شاء الله مع الدرس القادم والمجموعة System.Data
    لأني لن أكون متواجد في العشر الأواخر من رمضان , والله الموفق

    أسئلكم الدعاء لي ولعامه المسلمين
    اللهم أرزقنا ليله القدر , اللهم أمين
     
    ملف مرفق(ملفات)
     
    ملف مرفق  WebApplication6.rar (15.03كيلو )

    كلمات مفتاحية  :

    تعليقات الزوار ()