تبلیغات
banner
banner
banner
تبلیغات
banner

فیلم های آموزشی : 36 +

تعداد کاربران : 36 +

تعداد کل مطالب : 338 +

تعداد نظرات : 29 +

حضرت محمد (ص) : ز گهواره تا گور دانش بجوی .

آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و چهل و یکم


به نام پروردگار جهان

آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و چهل و یکم

سلام به همه کاربران وبسایت لندلرن

قسمت صد و صد و چهل و یکم


پيدا كردن گزينه هاي Favorites:

براي تكميل شدن قسمت Back-End برنامه، به كلاس ديگري نياز داريد كه بتواند آرايه اي از اشياي WebFavorite را در خود نگهداري كند .

اين كلاس بايد بتواند فولدر Favorites را بررسي كرده و بازاي هر فايلي كه پيدا مي كند يك شيئ جديد از نوع WebFavorite متناسب با اطلاعات فايل ايجاد كرده و به آرايه اضافه كند .

در بخش امتحان كنيد زير چنين كلاسي را ايجاد خواهيم كرد .

امتحان كنيد: ايجاد كلاس Favorites

  • با استفاده از پنجره ي Solution Explorer ،كلاس جديدي به نام Favorites ايجاد كنيد .
  • حال بايد فيلدي از نوع ArrayList در برنامه ايجاد كنيم تا اشيايي كه از نوع WebFavorite ايجـاد مـي شوند را در آن قرار دهيم. براي اين كار كد زير را به كلاس اضافه كنيد:
  • در اين كلاس به خاصيتي نياز داريم تا آدرس فولدر Favorites را در كامپيوتر كاربر برگرداند بنابراين اين خاصيت بايد از نوع فقط-خواندني باشد. براي اين كار كد مشخص شده در زير را به كلاس اضافه كنيد:
  • در آخر نيز بايد متدي به كلاس اضافه كنيد كه فايلهاي درون فولدر Favorites را بررسي كند.
  • هنگامي كه فايلي را پيدا كرد، يك شيئ WebFavorite براي آن ايجاد كرده و به ArrayList اضافه كند .
  • در ايـن كـلاس دو نسخه از اين متد را ايجاد مي كنيم؛
    • يكـي از آنهـا بـراي بدسـت آوردن آدرس فولـدر Favorites ،از خاصـيت FavoritesFolder در كلاس استفاده مي كند،
    • ديگري اين آدرس را به عنوان پارامتر دريافت مي كند.
  • براي اضافه كردن دو متد به كلاس، كد زير را در كلاس قرار دهيد:
براي ايجاد برنامه ي اصلي، بايد شيئ اي از نـوع Favorites ايجـاد كـرده، فولـدر Favorites را جـستجو كنيـد و عناصري كه در آن فولدر پيدا مي شود را به ليست اضافه كنيد. اين كار در امتحان كنيد بعد انجام خواهد شد .

چگونه كار مي كند؟

همانطور كه در بخش مقدماتی دوره مشاهده كرديد، براي ايجاد يك آرايه كه طول مشخصي نداشته باشد و بتوانيد به راحتي اشيايي را بـه آن
اضافه كرده و يا حذف كنيد، بايد از كلاس ArrayList استفاده كنيد.

در اين قسمت نيز شـيئ اي از ايـن نـوع را ايجـاد مـي كنيم تا بتوانيم اشياي ايجاد شده از نوع WebFavorite كه تعداد آنها نيز مشخص نيست را در آن قرار دهيم .

اما سوال اينجاست كه چگونه اين ليست را پـر كنـيم؟

خـب، در كـلاس Favorites متـدي سـربار گـذاري شـده بـه نـام ScanFavorites ايجاد مي كنيم .

نسخه ي دوم اين متد آدرس فولدري را به عنوان پارامتر دريافت مـي كنـد و درون آن فولدر به دنبال فايلهايي با پسوند url .مي گردد .

اما بهتر است قبـل از بررسـي نحـوه كـار ايـن متـد، نحـوه كـاركرد خاصـيت FavoritesFolder را بررسي كنيم .

به دليل اينكه بر حسب كاربري كه هم اكنون در حال استفاده از كامپيوتر است ممكن است آدرس فولـدر Favorites تغييـر كنــد، بهتــرين راه بــراي بدســت آوردن آدرس ايــن فولــدر، پرســيدن آن از وينــدوز اســت .

برای ايــن كــار مــي تــوانيم از متــد GetFolderPath كه در كلاسSystem.Environment قرار دارد استفاده كنيم :

اين متد يكي از گزينه هاي شمارنده ي Environment.SpecialFolder. را به عنوان پارامتر دريافت مي كند و آدرس آن فولدر را برمي گرداند .

شمارنده ي SpecialFolder حاوي نام تعدادي از فولـدرهاي خـاص اسـت كـه معمـولاً هنگام برنامه نويسي زياد مورد استفاده قرار مي گيرد (مانند فولدر Documents My و يا Downliads .( براي اينكه در برنامه ي اصلي از كلاس Favorites بخواهيم تا با جستجوي فولدر Favorites ،ليـست خـود را پـر كنــد بايــد نــسخه ي اول از متــد ScanFavorites را فراخــواني كنــيم.)

ايــن نــسخه بــا اســتفاده از خاصــيت FavoritesFolder ،آدرس فولدر Favorites را بدست آورده و آن را به عنوان پارامتر به نسخه ي دوم از ايـن متد مي فرستد .

كاري كه نسخه ي دوم از متد بايد انجام دهد اين است كه فايلهاي موجود در آدرسي كه به آن فرستاده شده است را بدسـت آورده و آنها را پـردازش كنـد .

بـراي بدسـت آوردن ليـست فايلهـاي موجـود در آن فولـدر مـي تـوانيم از متـد GetFiles در كـلاس System.io.Directory استفاده كنيم .

اين متد آدرس فولدري را كه بايد بررسي كند را به عنـوان پـارامتر دريافـتمي كند و آرايه اي از نام فايلهاي موجود در آن را برمي گرداند .

به اين ترتيب مي توانيم با اسـتفاده از يـك حلقـه ي foreach آنها را بررسي كنيم .

متغيري را از نوع رشته اي و به نام strFiles در حلقه تعريف ميكنيم تا با هر بار گردش حلقه نام يكي از فايل ها در آن قرار گيرد .

درون حلقه ي foreach ابتدا بررسي مي كنيم كه آيا پسوند فايل برابر با url .است يا نه؟

براي اين كار مي تـوانيم از متـد EndsWith در كلاس String استفاده كنيم .

متد EndsWith يك متد سربار گذاري شده است و نسخه اي كـه در اين برنامه از آن استفاده مي كنيم سه پارامتر دريافت مي كند .

  1. پارامتر اول عبارتي است كه بايد با انتهاي رشته مقايسه شود، در اينجـا عبارت “url “.را براي اين پارامتر استفاده مي كنيم.
  2. پارامتر دوم يك مقدار Boolean است كه مشخص مي كند آيـا متـد EndsWith در هنگام مقايسه حالت حروف را نيز در نظر بگيرد يا نه؟ در اين قسمت نمي خواهيم مقايسه ي مـتن بـه صـورت حساس به بزرگي و يا كوچكي حروف انجام شود پس مقدار true را براي اين پارامتر استفاده مي كنيم.
  3. پارامتر سوم هم شـيئ اي را از نوع  System.Globalization.CultureInfo دريافت مي كند، اين شيئ مشخص كننده تنظيمات محلي است كه بايد هنگام مقايسه در نظر گرفته شوند، اما در اينجا براي اينكه تنظيمات محلي پيش فـرض بـه كـار گرفتـه شـود از عبارت null براي اين پارامتر استفاده مي كنيم .
اگر فايلي كه در حال بررسي است داراي پـسوند url. باشـد بايـد شـيئ جديـدي از نـوع WebFavorite ايجـاد كنيـد، اطلاعات آن فايل را در داخل شيئ قرار دهيد و سپس شيئ را به آرايه ي Favorites اضافه كنيد .

براي اين كـار ابتـدا بايـد شيئ اي را از نوع WebFavorite ايجاد كرده و سپس متد Load را در آن شيئ فراخواني كنيـد و آدرس فايـل را بـه آن متد بفرستيد، در انتها نيز شيئ را در آرايه قرار دهيد .

ادامه آموزش را در قسمت صد و چهل و دوم ببینید.

 


درباره نویسنده
سجاد اسدی
   سجاد اسدی

سجاد اسدی هستم دانشجوی رشته نرم افزار و علاقه مند به تدریس و یادگیری دروس مرتبط با تکنولوژی نرم افزار و اینترنت اشیاء جهت ارتباط با بنده مراجعه شود به آیدی سروش و تلگرام : @ordervira و پیج بنده در اینستاگرام instagram.com/sajjadred11 ""اللهم صل علی محمد و آل محمد"" برای شروع هیچ وقت دیر نیست. "الهم عجل لولیک الفرج"

دیدگاه بگذارید

avatar
  اشتراک  
اطلاع رسانی

aparat کانال آپارات

soroush کانال سروش

کانال آی گپ